简单加解密算法 - 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公开密钥密码体制.所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制. 在公开密钥密码体制中,加密密钥(即 ...
随机推荐
- USACO刷题之路
重拾经典 本科生涯结束了,在大学做的ACM竞赛现在基本忘的差不多了.USACO作为一个经典的题库,本来是面向OI选手的,但是由于题目质量很高所以受到大家的好评,所以我这次就从它开始我的刷题之路吧. 由 ...
- margin 塌陷现象 与 注意事项
1.在标准文档流中,块级标签之间竖直方向的margin会以大的为准,这就是margin的塌陷现象. 但是,脱标之后就不会出现margin的塌陷现象. 2.margin:0 auto; 会让盒子水平居 ...
- JQuery UI的拖拽功能
JQuery UI是JQuery官方支持的WebUI 代码库,包含底层交互.动画.特效等API,并且封装了一些Web小部件(Widget).同时,JQuery UI继承了jquery的插件支持,有大量 ...
- iOS之PCH文件
在Xcode6之前,创建一个新工程xcode会在Supporting files文件夹下面自动创建一个“工程名-Prefix.pch”文件,也是一个头文件,pch头文件的内容能被项目中的其他所有源文件 ...
- js 日期控件laydate使用
官网 http://sentsin.com/layui/laydate/ 1. 下载官网上的压缩包,解压后只需要复制laydate 文件夹到你的项目中; 2. 在页面引入 <script t ...
- PHP 实现冒泡法排序
<?php $nums = array(10,0,20,30,50,40,80); function stor($numbers){ $length = count($numbers); for ...
- windows下查找指定端口被哪个程序占用
在Windows环境下,用netstat命令查看某个端口号是否占用,为哪个进程所占用. eg.查看端口号为61078被哪个程序占用 1.查看端口号为61079被哪个PID所占用:Netstat –an ...
- ucos事件邮箱信号量队列详解
Ucos的事件分为时钟,信号量,互斥性信号量,消息队列,以及消息邮箱 首先说信号量 信号量在ucos中的类型定义为OS_EVENT_TYPE_SEM,在任务控制块ecb中,主要是用到的是信号量计数器O ...
- libusb 开发者指南-牛胜超(转)
源:libusb 开发者指南 libusb Developers Guidelibusb 开发者指南 原作者:Johannes Erdfelt翻译者:牛胜超 Table of Contents目录 P ...
- 【Xilinx-Petalinux学习】-05-OpenCV程序测试
占位, 通过上一次编译的opencv库,运行程序,实现图像处理