1
문자열을 암호화 할 때 아무런 오류가 발생하지 않지만 문자열을 해독하려고하면 오류가 발생하며 Input.Length는 유효하지 않습니다. 어떤 아이디어?C# TripleDES 부정확 한 입력 길이
public class Crypt
{
public string Encrypt(string Key, string Input)
{
ICryptoTransform crypted = tran(Key).CreateEncryptor();
UTF8Encoding utf8 = new UTF8Encoding();
return utf8.GetString(crypted.TransformFinalBlock(utf8.GetBytes(Input), 0, Input.Length));
}
public string Decrypt(string Key, string Input)
{
ICryptoTransform crypted = tran(Key).CreateDecryptor();
UTF8Encoding utf8 = new UTF8Encoding();
return utf8.GetString(crypted.TransformFinalBlock(utf8.GetBytes(Input), 0, Input.Length));
}
private TripleDESCryptoServiceProvider tran(string Key)
{
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
UTF8Encoding utf8 = new UTF8Encoding();
TripleDESCryptoServiceProvider tDES = new TripleDESCryptoServiceProvider();
tDES.Key = md5.ComputeHash(utf8.GetBytes(Key));
tDES.Mode = CipherMode.ECB;
tDES.Padding = PaddingMode.PKCS7;
return tDES;
}
}
'새로운 UTF8Encoding()'이 필요없고,'Encoding.UTF8'은 이미 사용 가능합니다. – spender