一个简单实用的 vb 加密/解密算法

王朝vb·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

Function UserCode(password As String) As String

'用户口令加密

Dim il_bit, il_x, il_y, il_z, il_len, i As Long

Dim is_out As String

il_len = Len(password)

il_x = 0

il_y = 0

is_out = ""

For i = 1 To il_len

il_bit = AscW(Mid(password, i, 1)) 'W系列支持unicode

il_y = (il_bit * 13 Mod 256) + il_x

is_out = is_out & ChrW(Fix(il_y)) '取整 int和fix区别: fix修正负数

il_x = il_bit * 13 / 256

Next

is_out = is_out & ChrW(Fix(il_x))

password = is_out

il_len = Len(password)

il_x = 0

il_y = 0

is_out = ""

For i = 1 To il_len

il_bit = AscW(Mid(password, i, 1))

'取前4位值

il_y = il_bit / 16 + 64

is_out = is_out & ChrW(Fix(il_y))

'取后4位值

il_y = (il_bit Mod 16) + 64

is_out = is_out & ChrW(Fix(il_y))

Next

UserCode = is_out

End Function

Function UserDeCode(password As String) As String

'口令解密

Dim is_out As String

Dim il_x, il_y, il_len, i, il_bit As Long

il_len = Len(password)

il_x = 0

il_y = 0

is_out = ""

For i = 1 To il_len Step 2

il_bit = AscW(Mid(password, i, 1))

'取前4位值

il_y = (il_bit - 64) * 16

'取后4位值

'dd = AscW(Mid(password, i + 1, 1)) - 64

il_y = il_y + AscW(Mid(password, i + 1, 1)) - 64

is_out = is_out & ChrW(il_y)

Next

il_x = 0

il_y = 0

password = is_out

is_out = ""

il_len = Len(password)

il_x = AscW(Mid(password, il_len, 1))

For i = (il_len - 1) To 1 Step -1

il_y = il_x * 256 + AscW(Mid(password, i, 1))

il_x = il_y Mod 13

is_out = ChrW(Fix(il_y / 13)) & is_out

Next

UserDeCode = is_out

End Function

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航