DESC加密解密算法
2023-09-27 14:23:16 时间
using System; using System.Text; using System.Windows.Forms; using System.Security.Cryptography; using System.IO; using System.Collections; namespace test { public partial class frm_DESC : Form { public frm_DESC() { InitializeComponent(); } public string EncryptDES(string code) { string str; byte[] bytes = Encoding.UTF8.GetBytes(code); using (TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider()) { provider.Key = Encoding.ASCII.GetBytes("6\x0017^mM*\"p:ed\x001a\acO@jPH9^Px#"); provider.IV = Encoding.ASCII.GetBytes("De 63A&*"); using (MemoryStream stream = new MemoryStream()) { using (CryptoStream stream2 = new CryptoStream(stream, provider.CreateEncryptor(), CryptoStreamMode.Write)) { stream2.Write(bytes, 0, bytes.Length); stream2.FlushFinalBlock(); } str = Convert.ToBase64String(stream.ToArray()); } } return str; } public string DecryptDES(string password, string verify) { string str; if (verify != "ZZR") { return ""; } byte[] buffer = Convert.FromBase64String(password); using (TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider()) { provider.Key = Encoding.ASCII.GetBytes("6\x0017^mM*\"p:ed\x001a\acO@jPH9^Px#"); provider.IV = Encoding.ASCII.GetBytes("De 63A&*"); using (MemoryStream stream = new MemoryStream()) { using (CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write)) { stream2.Write(buffer, 0, buffer.Length); stream2.FlushFinalBlock(); stream2.Close(); } str = Encoding.UTF8.GetString(stream.ToArray()); } } return str; } public static string GetEncryptionPwd(string pwd, string number) { int num; pwd = pwd.ToLower(); string str = "QIAN" + pwd; for (num = 0; num < number.Length; num += 2) { str = str + number.Substring(num, 1); } str = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str + "CHUANG", "MD5"); var list = new ArrayList(); for (num = 0; num < str.Length; num++) { list.Add(str.Substring(num, 1)); } list.Reverse(); str = ""; for (num = 0; num < list.Count; num++) { str = str + list[num]; } return str; } private void btn_Decrypt_Click(object sender, EventArgs e) { string str = txt_Decrypt.Text.Trim(); txt_Enctry.Text = DecryptDES(str, "ZZR"); } private void btn_Encrypt_Click(object sender, EventArgs e) { string str = txt_Enctry.Text.Trim(); txt_Decrypt.Text = EncryptDES(str); } private void btn_MD5_Click(object sender, EventArgs e) { string number = txt_Number.Text.Trim(); string pwd = txt_Enctry.Text.Trim(); txt_Decrypt.Text = GetEncryptionPwd(pwd, number); } } }
相关文章
- Unity SKFramework框架(二十五)、RSA算法加密、签名工具 RSA Crypto
- 【实体识别】深入浅出讲解命名实体识别(介绍、常用算法)
- 使用js实现5种加密解密算法(凯撒密码、字母倒排序、单表置换、维基利亚、转换加密算法
- SSE图像算法优化系列三十二:ZhangGuo图像细化算法的C语言以及SIMD指令优化
- 算法系列5《SSF33》
- 《算法技术手册》一3.5.3 使用环境
- 算法小结-冒泡、选择排序、直接插入排序
- 介绍对称加密的另一个算法——PBE
- LeetCode_前缀树_贪心算法_中等_421.数组中两个数的最大异或值
- 杭电OJ第11页2030~2034算法题(C语言)
- 推箱子游戏(算法设计)
- 计算机视觉系列-轻松掌握 MMDetection 中常用算法 :Cascade R-CNN(三)
- c++实现加密和解密算法以及JNI技术的应用实例
- 一步一步写算法(之克鲁斯卡尔算法 中)
- 通俗讲解:缓存、缓存算法和缓存框架
- 贝叶斯算法
- 算法: 希尔排序
- [转载]手机号码吉凶算法(附吉凶对照表)
- 经典中的经典算法 动态规划(详细解释,从入门到实践,逐步讲解)
- python学习之数据结构(六):数据结构与算法:树与树算法: 二叉树的创建、二叉树的遍历(深度遍历[先序遍历,中序遍历,后序遍历], 广度遍历)