Ami*_*Ami 2 asp.net encryption console-application
我想加密邮件ID.加密的邮件ID不应包含特殊字符.我从控制台应用程序发送邮件.在控制台应用程序中,我编码邮件ID并将其附加到将执行我的点击计数的链接中.在Web应用程序中,我正在解码传递的邮件ID.因此,如果加密邮件ID包含特殊字符,则会干扰我的链接.
我使用以下:
string EncryptedEmailId;
string EncryptionKey = "MAKV2SPBNI99212";
byte[] EmailIdEncrypt = Encoding.Unicode.GetBytes(InvEmail);
using (Aes encryptor = Aes.Create())
{
Rfc2898DeriveBytes pdbEncrypt = new Rfc2898DeriveBytes(EncryptionKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });
encryptor.Key = pdbEncrypt.GetBytes(32);
encryptor.IV = pdbEncrypt.GetBytes(16);
using (MemoryStream msEncrypt = new MemoryStream())
{
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor.CreateEncryptor(), CryptoStreamMode.Write))
{
csEncrypt.Write(EmailIdEncrypt, 0, EmailIdEncrypt.Length);
csEncrypt.Close();
}
EncryptedEmailId = Convert.ToBase64String(msEncrypt.ToArray());
}
}
individualContent = individualContent.Replace("[MailId]", EncryptedEmailId);
Run Code Online (Sandbox Code Playgroud)
借着尼普的暗示,我得到了答案.
a)将字符串转换为十六进制
public static string ConvertStringToHex(String input, System.Text.Encoding encoding)
{
Byte[] stringBytes = encoding.GetBytes(input);
StringBuilder sbBytes = new StringBuilder(stringBytes.Length * 2);
foreach (byte b in stringBytes)
{
sbBytes.AppendFormat("{0:X2}", b);
}
return sbBytes.ToString();
}
Run Code Online (Sandbox Code Playgroud)
b)将Hex转换为String
public static string ConvertHexToString(String hexInput, System.Text.Encoding encoding)
{
int numberChars = hexInput.Length;
byte[] bytes = new byte[numberChars / 2];
for (int i = 0; i < numberChars; i += 2)
{
bytes[i / 2] = Convert.ToByte(hexInput.Substring(i, 2), 16);
}
return encoding.GetString(bytes);
}
Run Code Online (Sandbox Code Playgroud)
样本使用代码
string testString = "MIKA@?&^";
string hex = ConvertStringToHex(testString, System.Text.Encoding.Unicode);
string normal = ConvertHexToString(hex, System.Text.Encoding.Unicode);
Debug.Assert(testString.CompareTo(normal) == 0, "They are not identical");
Run Code Online (Sandbox Code Playgroud)
请看:http://www.nullskull.com/faq/834/convert-string-to-hex-and-hex-to-string-in-net.aspx
| 归档时间: |
|
| 查看次数: |
10281 次 |
| 最近记录: |