简单加解密算法 - vb.net
Public Class Form1
    Dim charAarray() As Char
    '加密
    Private Sub Btn_En_Click(sender As System.Object, e As System.EventArgs) Handles Btn_En.Click
        Dim s As String
        Dim result As Boolean
        result = EncryptOrDecrypt(Txt_PlainText_1.Text, Txt_Secrect_Key.Text, 1, s)
        Txt_Text_1.Text = s
        MessageBox.Show(IIf(result, "Success", "Failure"))
    End Sub
    '解密
    Private Sub Btn_De_Click(sender As System.Object, e As System.EventArgs) Handles Btn_De.Click
        Dim s As String
        Dim result As Boolean
        result = EncryptOrDecrypt(Txt_Text_2.Text, Txt_Secrect_Key.Text, -1, s)
        Txt_PlainText_2.Text = s
        MessageBox.Show(IIf(result, "Success", "Failure"))
    End Sub
    '加解密字符串
    'str为待加密的字符串
    'secretKey为秘钥
    'f为加解密标示,f=1标示加密,f=-1标示解密
    'outputStr为加解密之后的字符串
    '返回操作结果
    Function EncryptOrDecrypt(ByVal str As String, ByVal secretKey As Integer, ByVal f As Integer, ByRef outputStr As String) As Boolean
        outputStr = ""
        If (String.IsNullOrWhiteSpace(str)) Then
            Return False
        End If
        Dim c As Char
        For i As Integer = 0 To str.Length - 1
            c = str(i)
            c = EncryptChar(c, secretKey, f)
            outputStr &= c
        Next i
        Return True
    End Function
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        charAarray = CreateCharArray()
        MessageBox.Show("OK")
    End Sub
    Function CreateCharArray() As System.Array
        Dim s As String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
        Dim rnd As New Random
        Dim cArray(s.Length - 1) As Char
        Dim index As Integer
        Dim i As Integer
        i = 0
        Do
            index = rnd.Next(s.Length)
            If Not cArray.Contains(s(index)) Then
                cArray(i) = s(index)
                i += 1
            End If
        Loop While (i < s.Length)
        Return cArray
    End Function
    '加密单个字符
    'c为要加密的字符
    'secretKey为秘钥
    'f为加解密标示,f=1标示加密,f=-1标示解密
    '返回加密之后的字符
    Function EncryptChar(ByVal c As Char, ByVal secretKey As Integer, ByVal f As Integer) As Char
        Dim cIndex As Integer
        Dim len As Integer
        len = charAarray.Length
        cIndex = Array.IndexOf(charAarray, c)
        If f = 1 Then
            cIndex += secretKey
        Else
            cIndex -= secretKey
        End If
        If (cIndex >= len) Then
            Math.DivRem(cIndex, len, cIndex)
        End If
        If (cIndex < 0) Then
            Do
                cIndex += len
            Loop While (cIndex < 0)
        End If
        Return charAarray(cIndex)
    End Function
End Class
简单加解密算法 - vb.net的更多相关文章
- DES加解密算法Qt实现
		算法解密qt加密table64bit [声明] (1) 本文源码 大部分源码来自:DES算法代码.在此基础上,利用Qt编程进行了改写,实现了DES加解密算法,并添加了文件加解密功能.在此对署名为b ... 
- AES加解密算法Qt实现
		[声明] (1) 本文源码 在一位未署名网友源码基础上,利用Qt编程,实现了AES加解密算法,并添加了文件加解密功能.在此表示感谢!该源码仅供学习交流,请勿用于商业目的. (2) 图片及描述 除图1外 ... 
- C#加解密算法
		先附上源码 加密解密算法目前已经应用到我们生活中的各个方面 加密用于达到以下目的: 保密性:帮助保护用户的标识或数据不被读取. 数据完整性:帮助保护数据不被更改. 身份验证:确保数据发自特定的一方. ... 
- 3des加解密算法
		编号:1003时间:2016年4月1日09:51:11功能:openssl_3des加解密算法http://blog.csdn.net/alonesword/article/details/17385 ... 
- QQ协议的TEA加解密算法
		QQ通讯协议里的加解密算法. #include <stdio.h> #include <stdlib.h> #include <memory.h> #include ... 
- AES加解密算法在Android中的应用及Android4.2以上版本调用问题
		from://http://blog.csdn.net/xinzheng_wang/article/details/9159969 AES加解密算法在Android中的应用及Android4.2以上 ... 
- [转]RSA,DSA等加解密算法介绍
		From : http://blog.sina.com.cn/s/blog_a9303fd90101cgw4.html 1) MD5/SHA MessageDigest是一个数据的数字指纹. ... 
- JavaScript与C#互通的DES加解密算法
		原文地址:传送门 本文提供了一个能使JavaScript与C#互通的DES加解密算法的实现,在前台页面中用JavaScript版本的DES算法将数据加密之后,传到服务器端,在服务器端可用C#版本的DE ... 
- C# 中使用 RSA加解密算法
		一.什么是RSA RSA公开密钥密码体制.所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制. 在公开密钥密码体制中,加密密钥(即 ... 
随机推荐
- ntpdate
			apt-get install ntpdate ntpdate 133.100.9.2 [root@10.10.10.74 /data]$ lsof -i:123 COMMAND PID USER F ... 
- Delphi中register, pascal, cdecl, stdcall, safecall(转)
			源:http://blog.sina.com.cn/s/blog_552c78120100hsr9.html 注: 使用错误,或者在该加的地方没有加,可能会出现"privileged ins ... 
- posix第二篇-----linux 锁机制
			1 简介 锁机制(lock) 是多线程编程中最常用的同步机制,用来对多线程间共享的临界区(Critical Section) 进行保护. Pthreads提供了多种锁机制,常见的有: 1) Mutex ... 
- openstack controller ha测试环境搭建记录(七)——配置glance
			在所有集群安装glance软件:yum install -y openstack-glance python-glanceclient 在任一节点创建glance用户:mysql -u root -p ... 
- Linux启动时显示Grub命令行及修改
			1.在启动Linux系统时,如果/boot/grub/grub.cfg文件损坏或者不存在时,启动Linux时,就会有Grub命令行的提示. 如下操作,将系统自带的grub.cfg文件改名.重新启动系统 ... 
- 控制流之while
			while语句只要在一个条件为真的情况下,while语句允许你重复执行一块语句.while语句是所谓 循环 语句的一个例子.while语句有一个可选的else从句.使用while语句~~~~~~~~~ ... 
- 在Windows环境下设置terminal下调试adb
			当我们想要查看某些程序运行的结果的时候.可能需要打开adb,输入相应的命令,在Windows环境下,需要配置环境变量. 当我们直接在Windows环境下输入adb shell,会提示adb是不内部命令 ... 
- (中等)  HDU  1542  Atlantis,扫描线。
			Problem Description There are several ancient Greek texts that contain descriptions of the fabled is ... 
- [Angular Tutorial] 13 -REST and Custom Services
			在这一步中,我们将会改变我们获取数据的方式. ·我们定义一个代表RESTful客户端的自定义服务.使用这个客户端,我们可以用一种更简单的方法向服务端请求数据,而不用处理更底层的$httpAPI,HTT ... 
- object 类 toString() 和 equals() 的覆写
			基本作用: objiect类是所有类的父类. 任何一个类定义的时候如果没有明确定义了父类的话,默认父类是Object类. class A extends Object{} 在整个java里面,类的继承 ... 
