willland 发表于 2011-9-5 20:10:22

QTP有没有SHA1或者MD5的方法?如果没有,我们能用VBScript写一个吗?

本帖最后由 willland 于 2011-9-5 21:52 编辑

搞QTP脚本中碰上一个比较麻烦的事情,需要用到 SHA1 的方法,不知道QTP有没有现成的SHA1方法?
如果没有,我们自己能用VBScript写一个吗?

求 SHA1 方法!!!!!!

备注:在51testing中一直干的都是求助的活,实在是实力有限啊

lyscser 发表于 2011-9-5 20:42:24

SHA1……没听说过,爱莫能助

willland 发表于 2011-9-5 21:34:10

本帖最后由 willland 于 2011-9-5 21:51 编辑

分享是王道。。。搞了几个小时,终于搜出了一个可用的方法。。。不容易啊,申请加精。。。      


'--------------------------------------------------------------------------------------------------------------------------
'Summary: 调用capicom.dll计算哈希值(下载并注册组件capicom.dll)
'Author: 刘汝锋
'Date: 2011.08.30
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
'将字符转化为二进制格式
Function Str2Strb(str)
    For i = 1 to Len(str)
      tmp = Mid(str,i,1)
      reStr = reStr & chrB(ascB(tmp))
    Next
    Str2Strb = reStr
End Function
'函数Hash()
Function Hash(str)
    Dim HashedData
    Set HashedData = CreateObject("CAPICOM.HashedData")
    HashedData.Algorithm = CAPICOM_HASH_ALGORITHM_SHA_1
    '将"SHA_1"换成"MD5"就可以计算MD5码了
    HashedData.Hash Str2Strb(str)
    Hash = LCase(HashedData.Value)
    'LCase()表示返回小写字符
End Function

willland 发表于 2011-9-5 21:34:39

灰常感谢“砖家叫兽”,每帖必回

lyscser 发表于 2011-9-6 10:04:06

还是不懂啊,何不给我们完整的讲解一下……

jacky101521 发表于 2011-9-17 23:26:31

回复 1# willland
感谢楼主的分享,这个函数确实可以实现一次sha1加密,可进行第二次加密的时候,结果就不一样了,不知道是函数的问题还是我应用错误?求解答。
页: [1]
查看完整版本: QTP有没有SHA1或者MD5的方法?如果没有,我们能用VBScript写一个吗?