【开源项目】花密(Flower Password)VB版之密码生成模块
来源:互联网 发布:h3c交换机端口配置ip 编辑:程序博客网 时间:2024/06/06 04:34
'*****************************************************************' Copyright (c) 2011-2012 FlowerPassword.com All rights reserved.' Author : xLsDg @ Xiao Lu Software Development Group' Blog : http://hi.baidu.com/xlsdg' QQ : 4 4 7 4 0 5 7 4 0' Version : 1 . 0 . 0 . 0' Date : 2 0 1 2 / 0 4 / 0 7' Description :' History :'*****************************************************************Option ExplicitPublic Function getFlowerPassword(ByVal strPassword As String, _ ByVal strKey As String, _ Optional ByVal PasswordBit As Integer = 16) As String If Len(strPassword) > 0 And Len(strKey) > 0 Then Dim cMD5 As New clsMD5 Dim md5one As String Dim md5two As String Dim md5three As String md5one = LCase$(cMD5.Hmac_MD5(strPassword, strKey)) md5two = LCase$(cMD5.Hmac_MD5(md5one, "snow")) md5three = LCase$(cMD5.Hmac_MD5(LCase$(md5one), "kise")) Dim code32 As String code32 = vbNullString Dim i As Integer For i = 1 To Len(md5two) If Not IsNumeric(Mid$(md5two, i, 1)) Then Dim str As String str = "sunlovesnow1990090127xykab" If InStr(1, str, Mid$(md5three, i, 1), vbBinaryCompare) > 0 Then code32 = code32 + UCase$(Mid$(md5two, i, 1)) Else code32 = code32 + Mid$(md5two, i, 1) End If Else code32 = code32 + Mid$(md5two, i, 1) End If Next Dim code1 As String code1 = Left$(code32, 1) Dim code16 As String If Not IsNumeric(code1) Then code16 = Left$(code32, 16) Else code16 = "K" + Mid$(code32, 2, 15) End If If PasswordBit = 16 Then getFlowerPassword = code16 Else getFlowerPassword = code32 End If Set cMD5 = Nothing End IfEnd Function