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

2016-02-19 21:44 173 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

(本文来源于图老师网站,更多请访问http://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))  

(本文来源于图老师网站,更多请访问http://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

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

延伸阅读
有诸多缺点,比如不是时间触发而是靠线程挂起 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...
标签: ASP
  接着上回,新建一个ActiveX DLLs类型的工程,并将缺省的工程名由“Project1”改为“Songbird”(当然你也有权不这样改,呵呵),将缺省的类名由“Class1”改为“FileUp”,至于为什么要这样改,以后你便知道了。     要想实现读取上传文件字节数据的功能,势必要涉及到Request对象,可是在VB中该怎么做呢?简单,只...
标签: 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 { /** * 分页数据 */ ...
public static string HashCryptString(string strText,string method){ if(method == "MD5"){ strText = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strText,"MD5"); // MD5 md5 = new MD5CryptoServiceProvider(); // strText = System.Text.Encoding.UTF8.GetString(md5.ComputeHash(System.Text.Encod...
/*使用方法可以建立英语库,每次可建立100个单词*/ #include io.h #include stdio.h #include stdlib.h #include time.h typedef strUCt {  char cha[50];  char eng[50]; }CTOE; void writefile(); void practicec(); int main() {  char id;  FILE *fp;...

经验教程

397

收藏

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