Open ck00004 opened 3 years ago
Password 乱码问题是因为for循环写错了 continue 换成break
https://github.com/sf197/GetPwd/blob/master/GetPwd/SecureCRTCipher.cs#L35
我是这么写的
private static string Findnull(byte[] dec)
{
UnicodeEncoding unicode = new UnicodeEncoding();
List<byte> ret = new List<byte>();
string str = "";
for (int i = 0; i < dec.Length; i++)
{
if (dec[i] == 0x00)
{
if (dec[i + 1] == 0x00)
{
i++;
break;
}
}
str += (char)dec[i];
ret.Add(dec[i]);
}
byte[] test = ret.Where(x => x != 0).ToArray();
return System.Text.Encoding.UTF8.GetString(test);
//return System.Text.Encoding.Default.GetString(test);
}
你的解密填充有问题应该是 _aes.Padding = PaddingMode.None; key默认为空值的sha256 并且Padding不能不设置,根据msdn文档,不设置默认为PKCS7
参考文档 https://docs.microsoft.com/zh-cn/dotnet/api/system.security.cryptography.symmetricalgorithm.padding?view=netframework-4.8#System_Security_Cryptography_SymmetricAlgorithm_Padding https://docs.microsoft.com/zh-cn/dotnet/api/system.security.cryptography.paddingmode?view=netframework-4.8#System_Security_Cryptography_PaddingMode_PKCS7