Реализация существующих функций ASP.NET Encrypt & Decrypt в JavaScriptJavascript

Форум по Javascript
Ответить
Anonymous
 Реализация существующих функций ASP.NET Encrypt & Decrypt в JavaScript

Сообщение Anonymous »

В моем существующем приложении ASP.NET есть функции зашифрованного и дешифрования с использованием TripleDESCRYPTOServiceProvider с ключом, у меня также есть ключ, и я могу напечатать распечатанные и зашифрованные струны, база данных MSSQL обладает хранимыми зашифрованными клавишами, которые являются паролями < /p>
Prerie ReactJs при сохранении базы данных SQL Server. (ASP работает очень плохо)
Backend находится в ExpressJs с API REST < /p>
Я строю функцию входа в систему, которая проверит пароль, теперь как мне написать тот же зашифрованный и расшифрованный механизм ASP.NET в ExpressJs Backend < /p>
Это функция Decrypt от asp.net < /p> < /p>
Это функция Decrypt от asp.net < /p> < /p>
Это расширительная функция Asp.net < /p> < /p>
. public string Decrypt(string cipherString)
{
try
{
cipherString = cipherString.Replace(' ', '+');
byte[] keyArray;
byte[] toEncryptArray = Convert.FromBase64String(cipherString);
var settingsReader = new AppSettingsReader();
var key = (string)settingsReader.GetValue("Sabmar", typeof(String));
{
var hashmd5 = new MD5CryptoServiceProvider();
keyArray = hashmd5.ComputeHash(Encoding.UTF8.GetBytes(key));
hashmd5.Clear();
}
var tdes = new TripleDESCryptoServiceProvider
{
Key = keyArray,
Mode = CipherMode.ECB,
Padding = PaddingMode.PKCS7
};
var cTransform = tdes.CreateDecryptor();
byte[] resultArray = cTransform.TransformFinalBlock(
toEncryptArray, 0, toEncryptArray.Length);
tdes.Clear();
return Encoding.UTF8.GetString(resultArray);
}
catch (Exception)
{
return "";
}
}
< /code>
Это функция Encrypt от asp.net < /p>
public string Encrypt(string toEncrypt)
{
byte[] keyArray;
byte[] toEncryptArray = Encoding.UTF8.GetBytes(toEncrypt);
var settingsReader = new AppSettingsReader();
var key = (string)settingsReader.GetValue("Sabmar", typeof(String));
{
var hashmd5 = new MD5CryptoServiceProvider();
keyArray = hashmd5.ComputeHash(Encoding.UTF8.GetBytes(key));
hashmd5.Clear();
}
var tdes = new TripleDESCryptoServiceProvider
{
Key = keyArray,
Mode = CipherMode.ECB,
Padding = PaddingMode.PKCS7
};
var cTransform = tdes.CreateEncryptor();
byte[] resultArray =
cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
tdes.Clear();
return Convert.ToBase64String(resultArray, 0, resultArray.Length);
}
< /code>
Это функция шифрования, которую я написал в JavaScript < /p>
function encrypt(plainString, key) {
try {
// Create MD5 hash of the key
const hash = crypto.createHash('md5');
hash.update(key);
const keyArray = hash.digest();

// Create cipher instance
const cipher = crypto.createCipheriv('des-ede3', keyArray, null);
cipher.setAutoPadding(true);

// Encrypt the plain string
const encrypted = Buffer.concat([cipher.update(Buffer.from(plainString, 'utf8')), cipher.final()]);

// Return the encrypted string
return encrypted.toString('base64');
} catch (error) {
console.error(error);
return "";
}
}
< /code>
И я называю функцию таким образом < /p>
const key = 'Sabmar';
const cipherString = 'Welcome';
const decryptedString = decrypt(cipherString, key);
console.log(decryptedString);
< /code>
Теперь JavaScript дает мне ошибку, говоря, что длина ключа недействительна
Я много пробовал, но я не могу реализовать этот код .NET к JavaScript < /p>
Я пытался поговорить с Meta ai, но не достиг никакого заключения
i sovald ware -key, потому что AI говорит, что AI говорит
в тему 3 -й. байты (192 бита). Тем не менее, функция хэш MD5, используемая в коде, генерирует 16-байтовый (128-битный) хэш.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... javascript
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»