51Testing软件测试论坛

标题: QTP有没有SHA1或者MD5的方法?如果没有,我们能用VBScript写一个吗? [打印本页]

作者: willland    时间: 2011-9-5 20:10
标题: QTP有没有SHA1或者MD5的方法?如果没有,我们能用VBScript写一个吗?
本帖最后由 willland 于 2011-9-5 21:52 编辑

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

求 SHA1 方法!!!!!!

备注:在51testing中一直干的都是求助的活,实在是实力有限啊
作者: lyscser    时间: 2011-9-5 20:42
SHA1……没听说过,爱莫能助
作者: willland    时间: 2011-9-5 21:34
本帖最后由 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
灰常感谢“砖家叫兽”,每帖必回
作者: lyscser    时间: 2011-9-6 10:04
还是不懂啊,何不给我们完整的讲解一下……
作者: jacky101521    时间: 2011-9-17 23:26
回复 1# willland
感谢楼主的分享,这个函数确实可以实现一次sha1加密,可进行第二次加密的时候,结果就不一样了,不知道是函数的问题还是我应用错误?求解答。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2