【开源项目】花密(Flower Password)VB版之密码生成模块

'*****************************************************************
' 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 Explicit

Public 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 If

End Function


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值