利用Base64对文本进行加密解密操作
2017-04-13 22:51
495 查看
有时候我们需要对数据进行加密解密,最常见的加密方法有MD5加密、Base64加密。而今天讲的是Base64加密解密方法,我们需要引用两个文件using System.Collections.Generic;和using System.Security.Cryptography;同时我们定义两个变量 KEY_64和IV_64来存放字符,这两个变量是加密和解密需要用到的,但这必须是8个字符且是64Bit。
例如如此定义变量:
private static string KEY_64 = "a4G28=Jk"; //必须是8个字符(64Bit)
private static string IV_64 = "JKbN=5[?"; //必须8个字符(64Bit)
解密的方法如下:
/// <summary>
/// 加密
/// </summary>
/// <param name="PlainText">未加密文本</param>
/// <returns></returns>
public static string Encrypt(string PlainText)
{
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
int i = cryptoProvider.KeySize;
MemoryStream ms = new MemoryStream();
CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write);
StreamWriter sw = new StreamWriter(cst);
sw.Write(PlainText);
sw.Flush();
cst.FlushFinalBlock();
sw.Flush();
return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);
}
解密的方法如下:
/// <summary>
/// 解密
/// </summary>
/// <param name="CypherText">加密过的字符</param>
/// <returns></returns>
public static string Decrypt(string CypherText)
{
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
byte[] byEnc;
try
{
byEnc = Convert.FromBase64String(CypherText);
}
catch
{
return null;
}
DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
MemoryStream ms = new MemoryStream(byEnc);
CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cst);
return sr.ReadToEnd();
}
同时,你可以自定义自己的加密程序,比如字符中含有数字你可以对其进行加减乘除求余等数学操作,针对字符的可以进行ASCII处理,再或者利用高数的思想进行算法运算,解密则根据你自己定义的规则进行反算回来。
例如如此定义变量:
private static string KEY_64 = "a4G28=Jk"; //必须是8个字符(64Bit)
private static string IV_64 = "JKbN=5[?"; //必须8个字符(64Bit)
解密的方法如下:
/// <summary>
/// 加密
/// </summary>
/// <param name="PlainText">未加密文本</param>
/// <returns></returns>
public static string Encrypt(string PlainText)
{
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
int i = cryptoProvider.KeySize;
MemoryStream ms = new MemoryStream();
CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write);
StreamWriter sw = new StreamWriter(cst);
sw.Write(PlainText);
sw.Flush();
cst.FlushFinalBlock();
sw.Flush();
return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);
}
解密的方法如下:
/// <summary>
/// 解密
/// </summary>
/// <param name="CypherText">加密过的字符</param>
/// <returns></returns>
public static string Decrypt(string CypherText)
{
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
byte[] byEnc;
try
{
byEnc = Convert.FromBase64String(CypherText);
}
catch
{
return null;
}
DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
MemoryStream ms = new MemoryStream(byEnc);
CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cst);
return sr.ReadToEnd();
}
同时,你可以自定义自己的加密程序,比如字符中含有数字你可以对其进行加减乘除求余等数学操作,针对字符的可以进行ASCII处理,再或者利用高数的思想进行算法运算,解密则根据你自己定义的规则进行反算回来。
相关文章推荐
- 异或加密法 在对文本进行简单加密的时候,可以选择用一个n位的二进制数,对原文进行异或运算。 解密的方法就是再执行一次同样的操作。
- 利用 BASE64Encoder 对字符串进行加密 BASE64Decoder进行解密
- 实用命令:利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
- 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
- 实用命令:利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
- 实用命令:利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
- 利用 BASE64Encoder 对字符串进行加密 BASE64Decoder进行解密
- Java-web中利用RSA进行加密解密操作的方法示例
- 异或加密法 在对文本进行简单加密的时候,可以选择用一个n位的二进制数,对原文进行异或运算。 解密的方法就是再执行一次同样的操作。
- 根据文本对输入的字符串进行加密解密操作
- 实用命令:利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
- 实用命令:利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
- 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
- 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
- java利用Apache commons codec进行MD5加密,BASE64加密解密,执行系统命令
- 利用openssl进行RSA加密解密
- C#通过一个密码对文件进行加密解密操作
- Linux网络编程一步一步学-利用OpenSSL提供的SSL操作函数进行加密通讯原始例子
- 如何使用Base64进行加密和解密
- 一次用shell解密base64加密的文本的过程