回 帖 发 新 帖 刷新版面

主题:VFP自带的加解密类_Crypt的使用

VFP自带的加密类_Crypt的使用



这个控件在安装目录的 FFC\下

复制到你的工程目录下,添加到控件工具栏,当作一个控件来使用。

这是一个没有可视界面的类。只有几个方法可以供调用:

EncryptSessionStreamString方法        &&流加密一个字符串。
语法
EncryptSessionStreamString(lcPassWord, lcKey, @lcEncryptedStream)
参数
lcPassWord        &&需要流加密的字符串。
lcKey        &&加密键值。
@lcEncryptedStream    &&加密完成后返回的字符传。

DecryptSessionStreamString方法        &&解密一个流加密过的字符串。
语法
DecryptSessionStreamString(lcPassWord, lcKey, @lcDecryptedStream)
参数
lcPassWord        &&需要解密的流加密字符串。
lcKey        &&解密键值。
@lcDecryptedStream    &&解密完成后返回的字符串。

EncryptSessionBlockString方法        &&块加密一个字符串(块比流的加密强度更大,速度更慢)。
语法
EncryptSessionBlockString(lcPassWord, lcKey, @lcEncryptedStream)
参数
lcPassWord        &&需要块加密的字符串。
lcKey        &&加密键值。
@lcEncryptedStream    &&加密完成后返回的字符传。

DecryptSessionBlockString方法        &&解密一个块加密过的字符串。
语法
DecryptSessionBlockString(lcPassWord, lcKey, @lcDecryptedStream)
参数
lcPassWord        &&需要解密的块加密字符串。
lcKey        &&解密键值。
@lcDecryptedStream    &&解密完成后返回的字符串。

EncryptSessionStreamFile方法        &&流加密一个文件。
语法
EncryptSessionStreamFile(cTextFile, lcKey, cEncryptTextFile )
参数
cTextFile        &&需要进行流加密的文件名称。
lcKey        &&加密键值。
cEncryptTextFile    &&加密完成后要存储的文件名。

DecryptSessionStreamFile方法        &&解密一个流加密过的文件。
语法
DecryptSessionStreamFile (cEncryptTextFile, lcKey, cDecryptTextFile)
参数
cEncryptTextFile    &&需要进行解密的流加密过的文件名称。
lcKey        &&解密键值。
cDecryptTextFile    &&解密完成后要存储的文件名。

EncryptSessionBlockFile方法        &&块加密一个文件。
语法
EncryptSessionBlockFile(cTextFile, lcKey, cEncryptTextFile )
参数
cTextFile        &&需要进行块加密的文件名称。
lcKey        &&加密键值。
cEncryptTextFile    &&加密完成后要存储的文件名。

DecryptSessionBlockFile方法        &&解密一个块加密过的文件。
语法
DecryptSessionBlockFile (cEncryptTextFile, lcKey, cDecryptTextFile)
参数
cEncryptTextFile    &&需要进行解密的块加密过的文件名称。
lcKey        &&解密键值。
cDecryptTextFile    &&解密完成后要存储的文件名。


SignFile方法    &&对一个文件进行签名。
语法
SignFile(cTextFile, @lcSignature, @lcSignaturePublicKey)
参数
cTextFile        &&要进行签名的文件名称。
@lcSignature    &&返回的签名。
@lcSignaturePublicKey        &&返回的公共键值。

VerifyFileSignature方法        &&验证文件签名。
语法
VerifyFileSignature(cTextFile, lcSignature, lcSignaturePublicKey, @llSignatureOK)
参数
cTextFile        &&要进行验证的文件名称。
lcSignature    &&签名。
lcSignaturePublicKey        &&公共键值。
@llSignatureOK    &&验证后返回的结果,验证通过返回.T.,否则返回.F.。

回复列表 (共3个回复)

沙发

*** 在程序中加入加解密代码

*** 加入类定义
SET CLASSLIB TO _crypt.vcx ADDITIVE

mm="加密测试信息aabbccddeeffggABCDEFG0123456789+-*/%()"            && 需要加密的信息
psd="123456"                                                    && 加密口令
mc=""                                                            && 存放加密后信息的变量
md=""                                                            && 存放解密后信息的变量

CR=CREATEOBJECT("_cryptapi")                                    && 建立加密对象实例


CR.EncryptSessionBlockString(mm,psd,@mc)                        && 使用块加密方法进行加密(高强度、慢速加密)
CR.DecryptSessionBlockString(mc,psd,@md)                        && 使用块加密方法进行解密

MESSAGEBOX("需要加密的信息为:"+mm+CHR(13)+"加密后的密文为:"+mc+CHR(32)+CHR(13)+"解密的信息为:"+md)



CR.EncryptSessionStreamString(mm,psd,@mc)                        && 使用流加密方法进行加密(相对低强度、高速加密)
CR.DecryptSessionStreamString(mc,psd,@md)                        && 使用流加密方法进行解密

MESSAGEBOX("需要加密的信息为:"+mm+CHR(13)+"加密后的密文为:"+mc+CHR(32)+CHR(13)+"解密的信息为:"+md)


板凳

*** 在程序中加入加解密代码

*** 加入类定义
SET CLASSLIB TO _crypt.vcx ADDITIVE

fm="文件.txt"                        && 需要加密的文件
psd="123456"                        && 加密口令
fc="加密文件.txt"                    && 存放加密后信息的文件
fd="解密文件.txt"                    && 存放解密后信息的文件

CR=CREATEOBJECT("_cryptapi")                            && 建立加密对象实例

*块加密含有中文字符的文件时,会有加密出错情况
*CR.EncryptSessionBlockFile(fm,psd,fc)                    && 使用块加密方法进行加密
*CR.DecryptSessionBlockFile(fc,psd,fd)                    && 使用块加密方法进行解密

CR.EncryptSessionStreamFile(fm,psd,fc)                    && 使用流加密方法进行加密
CR.DecryptSessionStreamFile(fc,psd,fd)                    && 使用流加密方法进行解密

3 楼

学习学习

我来回复

您尚未登录,请登录后再回复。点此登录或注册