C#对字符串进行加密解密
2022/7/10 1:20:07
本文主要是介绍C#对字符串进行加密解密,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
首先上效果图
加解密接口
internal string ToEncrypt(string encryptKey, string str) { try { byte[] P_byte_key = //将密钥字符串转换为字节序列 Encoding.Unicode.GetBytes(encryptKey); byte[] P_byte_data = //将字符串转换为字节序列 Encoding.Unicode.GetBytes(str); MemoryStream P_Stream_MS = //创建内存流对象 new MemoryStream(); { using (CryptoStream P_CryptStream_Stream = new CryptoStream(P_Stream_MS, new DESCryptoServiceProvider().CreateEncryptor(P_byte_key, P_byte_key),CryptoStreamMode.Write)) { P_CryptStream_Stream.Write(P_byte_data, 0, P_byte_data.Length);//向加密流中写入字节序列 P_CryptStream_Stream.FlushFinalBlock();//将数据压入基础流 byte[] P_bt_temp = P_Stream_MS.ToArray();//从内存流中获取字节序列 return Convert.ToBase64String(P_bt_temp); } } } catch (CryptographicException ce) { throw new Exception(ce.Message); } } internal string ToDecrypt(string encryptKey, string str) { try { byte[] P_byte_key = //将密钥字符串转换为字节序列 Encoding.Unicode.GetBytes(encryptKey); byte[] P_byte_data = //将加密后的字符串转换为字节序列 Convert.FromBase64String(str); MemoryStream P_Stream_MS =//创建内存流对象并写入数据 new MemoryStream(P_byte_data); CryptoStream P_CryptStream_Stream = //创建加密流对象 new CryptoStream(P_Stream_MS,new DESCryptoServiceProvider(). CreateDecryptor(P_byte_key, P_byte_key),CryptoStreamMode.Read); byte[] P_bt_temp = new byte[200];//创建字节序列对象 MemoryStream P_MemoryStream_temp =//创建内存流对象 new MemoryStream(); int i = 0;//创建记数器 while ((i = P_CryptStream_Stream.Read(//使用while循环得到解密数据 P_bt_temp, 0, P_bt_temp.Length)) > 0) { P_MemoryStream_temp.Write(//将解密后的数据放入内存流 P_bt_temp, 0, i); } return //方法返回解密后的字符串 Encoding.Unicode.GetString(P_MemoryStream_temp.ToArray()); } catch (CryptographicException ce) { throw new Exception(ce.Message); } }
调用过程
private void btn_Encrypt_Click(object sender, EventArgs e) { if (txt_password.Text.Length == 4)//判断加密密钥长度是否正确 { try { txt_EncryptStr.Text = //调用实例ToEncrypt方法得到加密后的字符串 new Encrypt().ToEncrypt( txt_password.Text, txt_str.Text); } catch (Exception ex)//捕获异常 { MessageBox.Show(ex.Message);//输出异常信息 } } else { MessageBox.Show("密钥长度不符!", "提示");//提示用户输入密钥长度不正确 } } private void btn_UnEncrypt_Click(object sender, EventArgs e) { if (txt_password2.Text.Length == 4)//判断加密密钥长度是否正确 { try { txt_str2.Text = //调用ToDecrypt方法得到解密后的字符串 new Encrypt().ToDecrypt( txt_password2.Text, txt_EncryptStr2.Text); } catch (Exception ex)//捕获异常 { MessageBox.Show(ex.Message);//输出异常信息 } } else { MessageBox.Show("密钥长度不符!", "提示");//提示用户输入密钥长度不正确 } }
这篇关于C#对字符串进行加密解密的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具