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

2016-02-19 21:44 150 1 收藏

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享一个简单实用的 vb 加密/解密算法,希望可以让热爱学习的朋友们体会到设计的小小的乐趣。

【 tulaoshi.com - 编程语言 】

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

    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))  

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

    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

来源:https://www.tulaoshi.com/n/20160219/1627026.html

延伸阅读
标签: Web开发
有热心网友回复: str += " 转到select name='page' onChange=\"window.location.href='" + fileName + temp + "cur_page='+this.options[this.selectedIndex].value\""; 已经试过了,没问题 1.以下是实现分页的类PageResultSet 代码如下: package page.bean; import java.util.*; public class PageResultSet { /** * 分页数据 */ ...
有诸多缺点,比如不是时间触发而是靠线程挂起 package com.zhou.clock; import java.awt.*; import java.awt.geom.*; import javax.swing.*; import java.lang.Math; import java.util.Date; public class Clock extends JFrame { ClockPane cp; public Clock (){ super("clock"); setDefaultCloseOperation(EXIT_ON_CLOSE...
使用win98的人一定知道其中有一个“计划任务"的应用程序,它能够到指定时间便开始工作。不要认为它很神秘,其实用VB来设计这样一个程序是非常容易的事,以下是一个简单的VB闹钟程序,可供各位使用VB的朋友参考,如有何不适之处,请多指点! 首先在form1上建立三个命令按钮,分别为command1(打开预启动的文件);command2(设定时间的按钮);第三个comman...
标签: ASP
  接着上回,新建一个ActiveX DLLs类型的工程,并将缺省的工程名由“Project1”改为“Songbird”(当然你也有权不这样改,呵呵),将缺省的类名由“Class1”改为“FileUp”,至于为什么要这样改,以后你便知道了。     要想实现读取上传文件字节数据的功能,势必要涉及到Request对象,可是在VB中该怎么做呢?简单,只...
标签: vb
建立的"通信卡片"控件包括:姓名、职务、单位、地址和电话,如图1.1所示。 具体操作按以下步骤进行: 第一步:建立一个容器 启动Visual Basic 6.0,在新建工程对话框中选择"标准EXE",单击"确定"按钮,建立一个启动过程,作为用户控件的容器。窗体的Caption属性设置为"通信卡片测试"。 第二步:增加一个工程(用户控...

经验教程

574

收藏

6
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部