我正在写一个软件程序,需要加密和保存的URL到一个文本文件,并在稍后解密它。我使用了一个简单的AES加密/解密调用:
private string EncryptString(string TargetString, string EncryptionKey)
{
var b = Encoding.UTF8.GetBytes(TargetString);
var encrypted = getAes(EncryptionKey).CreateEncryptor().TransformFinalBlock(b, 0, b.Length);
return Convert.ToBase64String(encrypted);
}
private string DecryptString(string TargetString, string EncryptionKey)
{
var b = Convert.FromBase64String(TargetString);
var decrypted = getAes(EncryptionKey).CreateDecryptor().TransformFinalBlock(b, 0, b.Length);
return Encoding.UTF8.GetString(decrypted);
}
private Aes getAes(string EncryptionKey)
{
var keyBytes = new byte[16];
var skeyBytes = Encoding.UTF8.GetBytes(EncryptionKey);
Array.Copy(skeyBytes, keyBytes, Math.Min(keyBytes.Length, skeyBytes.Length));
Aes aes = Aes.Create();
aes.Mode = CipherMode.CBC;
aes.Padding = PaddingMode.PKCS7;
aes.KeySize = 128;
aes.Key = keyBytes;
aes.IV = keyBytes;
return aes;
}一切似乎都很正常,只有一个例外:我在https://..中去掉了':‘字符。
下面是我加密并保存的内容:

...and当我重新加载和解密时,我得到:

“:”没有了。当我调试时,我看到':‘进入要保存的加密方法,但当我重新加载文本文件并解密时,':’消失了。其他一切都和我预期的一样。
我确信这是很简单的事情,但我无论如何也想不出来。
c# - .Net 5
谢谢。
-Joe
发布于 2021-10-01 21:58:10
找到了!额外的调试允许我看到它正在从文件中读回它并解密它。我在后面的代码中使用了一个"Replace“命令来提取一些格式化数据,这些数据提取出了”:“。谢谢你让我远离加密技术,否则我还会继续找的。#TunnelVision谢谢。
https://stackoverflow.com/questions/69412102
复制相似问题