05-25日<一个简单实用的 vb 加密/解密算法>之改进

在看了网友 everjoe评论后,俺改进了一下该程序,其实也就是把W系列的函数用B系列去替代,然后就支持中文加密了

修改后的全部代码入下:

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 = LenB(password)
    il_x = 0
    il_y = 0
    is_out = ""
    For i = 1 To il_len
        il_bit = AscB(MidB(password, i, 1))    'b系列支持中文
       
        il_y = (il_bit * 13 Mod 256) + il_x
        is_out = is_out & ChrB(Fix(il_y))  '取整 int和fix区别: fix修正负
        il_x = il_bit * 13 / 256
    Next
    is_out = is_out & ChrB(Fix(il_x))
   
    password = is_out
    il_len = LenB(password)
    il_x = 0
    il_y = 0
    is_out = ""
    For i = 1 To il_len
        il_bit = AscB(MidB(password, i, 1))
        '取前4位值
        il_y = il_bit / 16 + 64
        is_out = is_out & ChrB(Fix(il_y))
        '取后4位值
        il_y = (il_bit Mod 16) + 64
        is_out = is_out & ChrB(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 = LenB(password)
    il_x = 0
    il_y = 0
    is_out = ""
    For i = 1 To il_len Step 2
        il_bit = AscB(MidB(password, i, 1))
        '取前4位值
        il_y = (il_bit - 64) * 16
        '取后4位值
        'dd = AscW(Mid(password, i + 1, 1)) - 64
        il_y = il_y + AscB(MidB(password, i + 1, 1)) - 64
        is_out = is_out & ChrB(il_y)
    Next

    il_x = 0
    il_y = 0
    password = is_out
    is_out = ""

    il_len = LenB(password)
    il_x = AscB(MidB(password, il_len, 1))
    For i = (il_len - 1) To 1 Step -1
        il_y = il_x * 256 + AscB(MidB(password, i, 1))
        il_x = il_y Mod 13
        is_out = ChrB(Fix(il_y / 13)) & is_out
    Next
    UserDeCode = is_out
End Function

 

 

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
RC4加密解密算法是一种流密码算法,也称为挖洞密码算法。它的特点是简单、高效。该算法是由 Ron Rivest 设计并于1987年被发布的。RC4算法使用一个变长的密钥,通常为8至256字节,并利用密钥生成一个256字节的S盒。该S盒用来生成一个密钥流,再将明文和密钥流进行异或运算,得到密文。 VB(Visual Basic)是一种非常流行的面向对象的程序设计语言,它可以用于编写各种应用程序,包括加密解密程序。在VB中使用RC4算法进行加密解密非常简单。 首先,用户需要在VB程序中输入密钥和明文。密钥可以是任意长度的字符串,明文可以是任意长度的文件或者字符串。 然后,利用RC4算法生成S盒,并利用S盒生成密钥流。VB提供了丰富的字符串处理函数,可以方便地完成这些操作。 接下来,将生成的密钥流和明文进行异或运算,得到密文。VB中提供了按位异或操作符,可以直接使用。 最后,将密文保存到文件或者输出到屏幕上。在VB中,可以使用文件操作函数或者控制台输出函数完成这个步骤。 解密过程与加密过程类似,区别在于将密文和密钥流进行异或得到明文。同样,VB中提供了相应的函数来完成解密操作。 总之,RC4加密解密算法是一种简单高效的流密码算法VB作为一种流行的编程语言,可以很方便地实现RC4算法加密解密功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

neil

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值