lol韩服粉色萝莉:字符串加密与解密
来源:百度文库 编辑:偶看新闻 时间:2024/05/03 05:19:12
字符串加密与解密
设计应用程序时,为了防止一些敏感信息的泄露,通常需要对这些信息进行加密。以用户的登录密码为例,如果密码以明文的形式存储在数据表中,很容易就会被人发现;相反,如果密码以密文的形式储存,即使别人从数据表中发现了密码,也是加密之后的密码,根本不能使用。通过对密码进行加密,能够极大地提高系统的保密性。下面通过一个实例讲解如何对字符串进行加密与解密。
例6.21 创建一个控制台应用程序,命名为EDString。在该程序中定义一个静态的字符串变量,用来记录加密密钥。代码如下:(实例位置:光盘\TM\第6章\例6.21)
- static string encryptKey = "Oyea";
//定义密钥
自定义一个返回值类型为string类型的Encrypt方法,用来对字符串进行加密。该方法中有一个string类型的参数,用来表示要加密的字符串。Encrypt方法实现代码如下:
- #region 加密字符串
- ///
- /// 加密字符串
- ///
- /// 要加密的字符串
- ///
加密后的字符串 - static string Encrypt(string str)
- {
- DESCryptoServiceProvider descsp = new
DESCryptoServiceProvider(); //实例化加/解密类对象- byte[] key = Encoding.Unicode.GetBytes(encryptKey);
//定义字节数组,用来存储密钥- byte[] data = Encoding.Unicode.GetBytes(str);
//定义字节数组,用来存储要加密的字符串- MemoryStream MStream = new MemoryStream();
//实例化内存流对象- //使用内存流实例化加密流对象
- CryptoStream CStream = new CryptoStream
(MStream, descsp.CreateEncryptor(key, key),
CryptoStreamMode.Write);- CStream.Write(data, 0, data.Length);
//向加密流中写入数据- CStream.FlushFinalBlock();
//释放加密流- return Convert.ToBase64String(MStream.ToArray());
//返回加密后的字符串- }
- #endregion
说明:由于加密、解密字符串时,需要用到加密类和内存流,所以首先需要在命名空间区域添加System.Security.Cryptography和System.IO命名空间。
自定义一个返回值类型为string类型的Decrypt方法,用来对加密后的字符串进行解密。该方法中有一个string类型的参数,用来表示要解密的字符串。Decrypt方法实现代码如下:
- #region 解密字符串
- ///
- /// 解密字符串
- ///
- /// 要解密的字符串
- ///
解密后的字符串 - static string Decrypt(string str)
- {
- DESCryptoServiceProvider descsp = new
DESCryptoServiceProvider(); //实例化加/解密类对象- byte[] key = Encoding.Unicode.GetBytes(encryptKey);
//定义字节数组,用来存储密钥- byte[] data = Convert.FromBase64String(str);
//定义字节数组,用来存储要解密的字符串- MemoryStream MStream = new MemoryStream();
//实例化内存流对象- //使用内存流实例化解密流对象
- CryptoStream CStream = new CryptoStream(MStream,
descsp.CreateDecryptor(key, key), CryptoStreamMode.Write);- CStream.Write(data, 0, data.Length);
//向解密流中写入数据- CStream.FlushFinalBlock();
//释放解密流- return Encoding.Unicode.GetString
(MStream.ToArray()); //返回解密后的字符串- }
- #endregion
在Main方法中,首先提示输入信息;然后定义一个string类型的变量,用来记录输入的字符串;之后调用自定义方法Encrypt加密输入的字符串,并使用一个string类型的变量记录该字符串;接着调用自定义方法Decrypt对该字符串进行解密;最后分别输出加密和解密后的字符串。Main方法实现代码如下:
- static void Main(string[] args)
- {
- Console.Write("请输入要加密的字符串:");
//提示输入字符串- Console.WriteLine();
//换行输入- string strOld = Console.ReadLine();
//记录输入的字符串- string strNew = Encrypt(strOld);
//加密字符串- Console.WriteLine("加密后的字符串:" + strNew);
//输出加密后的字符串- Console.WriteLine("解密后的字符串:" + Decrypt(strNew));
//解密字符串并输出- Console.ReadLine();
- }
程序运行结果如图6.5所示。
图6.5 字符串加密与解密
加密解密字符串的算法原理
求救(字符串加密解密)破解高手进来
《加密与解密》
关于文件夹加密与解密
加密与解密技术介绍
请问VB加密解密字符串,支持中文的算法???
如何用JAVA实现字符串简单加密解密?
★★网页的加密与解密
怎样进行文件夹加密与解密
关于加密与解密的问题
MD5字符串加密与文件加密的区别
VB创建一个组件,提供字符串加密和解密的方法
请问怎样来进行学习加密与解密?
加密与解密技术在网络中的应用
字符串加密破解求助!!
字符串加密求助!!!!
解密加密光盘
加密文件夹不能解密
解密加密盘
怎么解密加密狗
加密大师-解密
怎么样解密加密文件
windows加密如何解密?
加密和解密