我正在使用以下加密方法来加密字符串
private static byte[] mKey = { };
private static byte[] mIV = { 89, 23, 13, 17, 69, 32, 02, 79 };
private static string mStringKey = "lkj@788*";
private static string Encrypt(string pText)
{
try
{
mKey = Encoding.UTF8.GetBytes(mStringKey.Substring(0, 8));
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
Byte[] byteArray = Encoding.UTF8.GetBytes(pText);
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream,
des.CreateEncryptor(mKey, mIV), CryptoStreamMode.Write);
cryptoStream.Write(byteArray, 0, byteArray.Length);
cryptoStream.FlushFinalBlock();
return Convert.ToBase64String(memoryStream.ToArray());
}
catch (Exception ex)
{
return string.Empty;
}
}
我想为使用此格式“CustomerId-PurchasedItem-DiscountValue”的客户构建折扣代码,并分别加密这些(CustomerId,PurchasedItem,DiscountValue)字符串,并将加密值组合在一起,在它们之间添加“ - ”字符以构建折扣代码。虽然解密上面的编码字符串,我会用“ - ”字符分割它,并单独解码,但我担心加密时如果它得到“ - ”字符然后我的逻辑将失败..这种方法是安全的还是可以任何一个建议我另一个技巧?或者是否有任何技巧可以将字符串加密产生固定长度?
答案 0 :(得分:1)
我相信.NET的base64编码永远不会包含' - '字符,所以你应该没问题。