アプリケーションでDES-ECB+base64暗号化を使用しています。それは私が「暗号」と呼んだクラスのコードです
public class Crypto
{
public static string Decrypt(string encryptedString)
{
DESCryptoServiceProvider desProvider = new DESCryptoServiceProvider();
desProvider.Mode = CipherMode.ECB;
desProvider.Padding = PaddingMode.PKCS7;
desProvider.Key = Encoding.ASCII.GetBytes("e5d66cf8");
using (MemoryStream stream = new MemoryStream(Convert.FromBase64String(encryptedString)))
{
using (CryptoStream cs = new CryptoStream(stream, desProvider.CreateDecryptor(), CryptoStreamMode.Read))
{
using (StreamReader sr = new StreamReader(cs, Encoding.ASCII))
{
return sr.ReadToEnd();
}
}
}
}
public static string Encrypt(string decryptedString)
{
DESCryptoServiceProvider desProvider = new DESCryptoServiceProvider();
desProvider.Mode = CipherMode.ECB;
desProvider.Padding = PaddingMode.PKCS7;
desProvider.Key = Encoding.ASCII.GetBytes("e5d66cf8");
using (MemoryStream stream = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(stream, desProvider.CreateEncryptor(), CryptoStreamMode.Write))
{
byte[] data = Encoding.Default.GetBytes(decryptedString);
cs.Write(data, 0, data.Length);
return Convert.ToBase64String(stream.ToArray());
}
}
}
}
しかし、文字列を暗号化してから再度復号化し、もう一度暗号化すると、暗号化された文字列は以前の暗号化と同じではありません。これが最初の暗号化された文字列です。
Ken0hup / DQZ8kxa7nyivjg6jl3haljjhbq1ufetqtwapwizw // 03m0uxf8dbuyzo2boz5vsvcxrjf1lpfzlwxdsdekac43l2k2ooyrxtn / da6kmm13ys9xoezgiroqfvj5qrkdokjrcvj0gyffoh2oedgyn + eaw5dgzsp697kj4 =
そしてここに2番目の暗号化された文字列があります:
kEN0HUp / dqz8kXA7nYivJG6Jl3haLJjhBq1UfEtQTwaPwizW // 03M0UxF8dBuYZo2BoZ5vsVcXRJF1LpFZLWxDsdeKAC43L2K2OoYRxTn / dA
最初の文字列のこの「Dgzsp697kj4=」を除いて、これらはほとんど同じです。
どうしたの?
前もって感謝します。