频道栏目
首页 > 资讯 > Visual Basic > 正文

2010年计算机二级VB辅导:加密/解密算法

10-03-30        来源:[db:作者]  
收藏   我要投稿

 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

相关TAG标签
上一篇:经典加密算法在VB中的实现:Base64
下一篇:2010年计算机二级VB辅导:表达式编译计算器(上)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站