简单加解密算法 - 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

时间: 2024-10-11 01:37:03

简单加解密算法 - vb.net的相关文章

DES加解密算法Qt实现

算法解密qt加密table64bit [声明] (1) 本文源码 大部分源码来自:DES算法代码.在此基础上,利用Qt编程进行了改写,实现了DES加解密算法,并添加了文件加解密功能.在此对署名为bengold1979的网友表示感谢!本文是对DES算法代码一文代码的具体描述.该源码仅供学习交流,请勿用于商业目的. (2) 图片及描述 图片及部分解析来自 http://zh.wikipedia.org/wiki/%E8%B3%87%E6%96%99%E5%8A%A0%E5%AF%86%E6%A8%9

AES加解密算法Qt实现

[声明] (1) 本文源码 在一位未署名网友源码基础上,利用Qt编程,实现了AES加解密算法,并添加了文件加解密功能.在此表示感谢!该源码仅供学习交流,请勿用于商业目的. (2) 图片及描述 除图1外,图片及部分解析来自http://zh.wikipedia.org/wiki/%E9%AB%98%E7%BA%A7%E5%8A%A0%E5%AF%86%E6%A0%87%E5%87%86.图1为个人劳动成果,请勿盗用此图. [简介] AES(Advanced Encryption Standard,

python实现的Caesar加解密算法

Caesar算法是最简单的加解密算法... # Caeser Cipher import sys,os MyCypher = 25 MyDict = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz `[email protected]#$%^&*()_+[]\\;\',./{}|:"<>?' plaintext = 'Hello World!' cryptmsg = '' def encrypt(text, cyph

[掌眼]iOS / Android / java / node.js 通用的 AES256 加解密算法

example.m NSString *text = @"text"; NSString *key32 = @"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; NSData *data = [text dataUsingEncoding:NSUTF8StringEncoding]; NSString *encryptedData = [[data AES256EncryptWithKey:key32] base64EncodedStringWi

加解密算法

加解密算法概述 工作中经常用到加解密算法大概有以下三种: 单项散列算法 对称散列算法 非对称散列算法 单项散列算法 由不定长的数据转化为固定长的字符串,代表有: sha1 sha1($str[,raw_out=false]);//算法不够复杂 raw_out默认为false,生成一个32位的加密串 如果为true,则生成一个16位的二进制流 md5 md5($str[,strict=false]) strict默认为false,生成一个32位的加密串 如果为true,则生成一个16位的二进制流

【转】各种加解密算法比较

转自: http://blog.csdn.net/pengzp/article/details/6556674 二.          加密算法介绍 对称加密算法 对称加密算法用来对敏感数据等信息进行加密,常用的算法包括: DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合. 3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高. AES(Advanced Encryption Standard

JavaScript与C#互通的DES加解密算法

原文地址:传送门 本文提供了一个能使JavaScript与C#互通的DES加解密算法的实现,在前台页面中用JavaScript版本的DES算法将数据加密之后,传到服务器端,在服务器端可用C#版本的DES解密算法将其解密,得到原始数据,以起到一定的保密作用.但基于算法本身和密钥保密程度方面的考虑,使用本算法加密后的数据,其保密程度不是很高,故请酌情使用. 声明:本文中的JavaScript版的DES加解密算法来自于互联网,但为了方便于转化成C#版本的代码,本人对其进行了细微调整. JavaScri

DES加解密算法的简单实现

前几天刚写完一个简单的DES算法的实验,拿来作为第一次发到博客的随笔,填充一下空空如也的博客,献丑了 因为主要目的是Easy-To-Understand,再现一个直观的DES加解密的过程,所以很浪费地每一个数据位都用一个short整型存储,用来理ying解fu过zuo程ye就好(虽说DES这种对称加密算法十多年前就已经被淘汰了,现在一般建议用AES或者DES3 “1973 年,美国国家标准局(NBS)开始征集一种标准的数据加密标准算法(DES),以用于非机密性政府机构.商业部门和民间的对非机密的

对称加解密算法解析

一.概述 cryptosystem密码学系统分为私钥系统及公钥系统. 私钥系统:指加解密双方事先做了私有信息约定,采用对称密钥算法: 公钥系统:指发送方用公开凭证对数据进行加密后传输,接收方使用私有凭证进行解密,采用非对称密钥算法: 对称加密分类 流加密(stream cipher),加密和解密双方使用相同伪随机加密数据流,一般都是逐位异或或者随机置换数据内容,常见的流加密算法如RC4. 分组加密加密(block cipher),也叫块加密,将明文分成多个等长的模块(block),使用确定的算法