【发布时间】:2012-09-13 02:00:08
【问题描述】:
我正在使用以下函数来加密一个字符串:
public string Encrypt(string stringToEncrypt, string SEncryptionKey)
{
try {
key = System.Text.Encoding.UTF8.GetBytes(Strings.Left(SEncryptionKey, 8));
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = Encoding.UTF8.GetBytes(stringToEncrypt);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(key, IV), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
} catch (Exception e) {
return e.Message;
}
}
我想知道是否有某种数学算法可以让我提前确定 Base64 加密字符串的长度。那么如果我的字符串长度为 15 个字符,那么 Base64 加密字符串的长度会是多少呢?
【问题讨论】:
-
您对
key成员的使用有点令人担忧。还有你的 using 语句在哪里? -
@Jodrell -- 我同时使用这两种方法。我是 DES 加密它,然后 base64 编码它。
-
@ChaosPandion -- 它正在进行中。我的“密钥”正在获取传入加密密钥的最左边 8 个字节
-
@Jodrell,不确定您的评论是什么 - 输入字符串,输出 *DES*+base64 字符串。问题可以有更简单的示例(删除 Base64,因为它的乘数是已知的),但即使是现在,也有真正的加密。
-
我还认为返回异常消息会使 API 混乱。调用者是否应该编写解析逻辑来确定是否引发了错误?
标签: c# encryption base64 des