VBS中通过调用CAPICOM对象实现SHA1&MD5加密
程序员文章站
2022-04-29 09:26:08
本来打算自己写的,但是看到复杂的算法描述就知难而退了。算了吧,有现成的com对象调用,又何必去关心算法呢,直接拿来使用就行了。如果下面的例子代码提示无法创建对象,需要下载c...
本来打算自己写的,但是看到复杂的算法描述就知难而退了。算了吧,有现成的com对象调用,又何必去关心算法呢,直接拿来使用就行了。如果下面的例子代码提示无法创建对象,需要下载capicom组件并注册。
const capicom_hash_algorithm_md2 = 1
const capicom_hash_algorithm_md4 = 2
const capicom_hash_algorithm_md5 = 3
const capicom_hash_algorithm_sha1 = 0
const capicom_hash_algorithm_sha_256 = 4
const capicom_hash_algorithm_sha_384 = 5
const capicom_hash_algorithm_sha_512 = 6
dim hasheddata
set hasheddata = createobject("capicom.hasheddata")
hasheddata.algorithm = capicom_hash_algorithm_sha1
hasheddata.hash "demon"
wscript.echo hasheddata.value
需要指出的是vbs的字符串是unicode编码的,例如上面的字符串"demon"在内存中的十六进制是4400 6500 6d00 6f00 6e00,这些hash算法只关心数据的二进制值,不同编码的同一字符串的二进制值是不一样的,这就是算出来的值和php中(php默认的编码是utf-8)的sha1("demon")的值不一样的原因。更多capicom的用法请自行查阅msdn参考文档。
复制代码 代码如下:
const capicom_hash_algorithm_md2 = 1
const capicom_hash_algorithm_md4 = 2
const capicom_hash_algorithm_md5 = 3
const capicom_hash_algorithm_sha1 = 0
const capicom_hash_algorithm_sha_256 = 4
const capicom_hash_algorithm_sha_384 = 5
const capicom_hash_algorithm_sha_512 = 6
dim hasheddata
set hasheddata = createobject("capicom.hasheddata")
hasheddata.algorithm = capicom_hash_algorithm_sha1
hasheddata.hash "demon"
wscript.echo hasheddata.value
需要指出的是vbs的字符串是unicode编码的,例如上面的字符串"demon"在内存中的十六进制是4400 6500 6d00 6f00 6e00,这些hash算法只关心数据的二进制值,不同编码的同一字符串的二进制值是不一样的,这就是算出来的值和php中(php默认的编码是utf-8)的sha1("demon")的值不一样的原因。更多capicom的用法请自行查阅msdn参考文档。
下面是我写的一个用vbs校验文件sha1和md5值的程序,将文件拖动到vbs上即可,缺点是不能处理太大的文件。
文中软件与vbs打包下载
原文:http://demon.tw/programming/vbs-sha1-md5.html
下一篇: 用VBS精确计算2的100次方的代码