mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-17 14:07:46 +08:00
Merge pull request #2081 from Vest/refactor_rijndael
Fixed compiler warning
This commit is contained in:
@@ -24,29 +24,24 @@ namespace mRemoteNG.Security.SymmetricEncryption
|
|||||||
BlockSizeInBytes = 16;
|
BlockSizeInBytes = 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public string Encrypt(string strToEncrypt, SecureString strSecret)
|
public string Encrypt(string strToEncrypt, SecureString strSecret)
|
||||||
{
|
{
|
||||||
if (strToEncrypt == "" || strSecret.Length == 0)
|
if (string.IsNullOrWhiteSpace(strToEncrypt) || strSecret.Length == 0)
|
||||||
return strToEncrypt;
|
return strToEncrypt;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var rd = new RijndaelManaged();
|
using var aes = Aes.Create();
|
||||||
|
using var md5 = MD5.Create();
|
||||||
var md5 = new MD5CryptoServiceProvider();
|
|
||||||
var key = md5.ComputeHash(Encoding.UTF8.GetBytes(strSecret.ConvertToUnsecureString()));
|
var key = md5.ComputeHash(Encoding.UTF8.GetBytes(strSecret.ConvertToUnsecureString()));
|
||||||
|
|
||||||
md5.Clear();
|
md5.Clear();
|
||||||
rd.Key = key;
|
aes.Key = key;
|
||||||
rd.GenerateIV();
|
aes.GenerateIV();
|
||||||
|
|
||||||
var iv = rd.IV;
|
using var ms = new MemoryStream(aes.IV);
|
||||||
var ms = new MemoryStream();
|
|
||||||
|
|
||||||
ms.Write(iv, 0, iv.Length);
|
var cs = new CryptoStream(ms, aes.CreateEncryptor(), CryptoStreamMode.Write);
|
||||||
|
|
||||||
var cs = new CryptoStream(ms, rd.CreateEncryptor(), CryptoStreamMode.Write);
|
|
||||||
var data = Encoding.UTF8.GetBytes(strToEncrypt);
|
var data = Encoding.UTF8.GetBytes(strToEncrypt);
|
||||||
|
|
||||||
cs.Write(data, 0, data.Length);
|
cs.Write(data, 0, data.Length);
|
||||||
@@ -54,7 +49,7 @@ namespace mRemoteNG.Security.SymmetricEncryption
|
|||||||
|
|
||||||
var encdata = ms.ToArray();
|
var encdata = ms.ToArray();
|
||||||
cs.Close();
|
cs.Close();
|
||||||
rd.Clear();
|
aes.Clear();
|
||||||
|
|
||||||
return Convert.ToBase64String(encdata);
|
return Convert.ToBase64String(encdata);
|
||||||
}
|
}
|
||||||
@@ -74,31 +69,25 @@ namespace mRemoteNG.Security.SymmetricEncryption
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var plaintext = "";
|
using var aes = Aes.Create();
|
||||||
|
using var md5 = MD5.Create();
|
||||||
|
var key = md5.ComputeHash(Encoding.UTF8.GetBytes(password.ConvertToUnsecureString()));
|
||||||
|
|
||||||
using (var rijndaelManaged = new RijndaelManaged())
|
md5.Clear();
|
||||||
{
|
aes.Key = key;
|
||||||
using (var md5 = new MD5CryptoServiceProvider())
|
|
||||||
{
|
|
||||||
var key = md5.ComputeHash(Encoding.UTF8.GetBytes(password.ConvertToUnsecureString()));
|
|
||||||
rijndaelManaged.Key = key;
|
|
||||||
}
|
|
||||||
|
|
||||||
var ciphertext = Convert.FromBase64String(ciphertextBase64);
|
var ciphertext = Convert.FromBase64String(ciphertextBase64);
|
||||||
|
|
||||||
var memoryStream = new MemoryStream(ciphertext);
|
using var ms = new MemoryStream(ciphertext);
|
||||||
var iv = new byte[BlockSizeInBytes];
|
|
||||||
memoryStream.Read(iv, 0, iv.Length);
|
|
||||||
rijndaelManaged.IV = iv;
|
|
||||||
|
|
||||||
var cryptoStream = new CryptoStream(memoryStream, rijndaelManaged.CreateDecryptor(),
|
var iv = new byte[BlockSizeInBytes];
|
||||||
CryptoStreamMode.Read);
|
ms.Read(iv, 0, iv.Length);
|
||||||
using (var streamReader = new StreamReader(cryptoStream, Encoding.UTF8, true))
|
aes.IV = iv;
|
||||||
{
|
|
||||||
plaintext = streamReader.ReadToEnd();
|
using var cryptoStream = new CryptoStream(ms, aes.CreateDecryptor(), CryptoStreamMode.Read);
|
||||||
rijndaelManaged.Clear();
|
using var streamReader = new StreamReader(cryptoStream, Encoding.UTF8, true);
|
||||||
}
|
var plaintext = streamReader.ReadToEnd();
|
||||||
} // rijndaelManaged
|
aes.Clear();
|
||||||
|
|
||||||
return plaintext;
|
return plaintext;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user