Javascript 在angular 7中使用md5哈希和三重Des加密的加密方法
我想用angular7实现同样的加密 下面的函数是在C#中,我尝试了crypto js,但它没有给出相同的结果 使用System.Security.CryptographyJavascript 在angular 7中使用md5哈希和三重Des加密的加密方法,javascript,c#,encryption,angular7,md5,Javascript,C#,Encryption,Angular7,Md5,我想用angular7实现同样的加密 下面的函数是在C#中,我尝试了crypto js,但它没有给出相同的结果 使用System.Security.Cryptography public static string Encrypt(string PlainText, string SecretKey) { try { byte[] keyArray; byte[] toEncryptArray = U
public static string Encrypt(string PlainText, string SecretKey)
{
try
{
byte[] keyArray;
byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(PlainText);
var hashMD5 = new MD5CryptoServiceProvider();
keyArray = hashMD5.ComputeHash(UTF8Encoding.UTF8.GetBytes(SecretKey));
hashMD5.Clear();
var triDESProv = new TripleDESCryptoServiceProvider();
triDESProv.Key = keyArray;
triDESProv.Mode = CipherMode.ECB;
triDESProv.Padding = PaddingMode.PKCS7;
var cTransform = triDESProv.CreateEncryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
triDESProv.Clear();
string encText = Convert.ToBase64String(resultArray, 0, resultArray.Length);
return encText;
}
catch
{
return "ERROR";
}
}
为什么不直接安装在C#和JavaScript中,并使用
crypto_secretbox()
,而不是实现的算法呢
LibNaude的secretbox比您上面发布的代码更安全,原因如下:
在每一个方面,secretbox都更安全。对libnaid的支持也很重要。您是如何配置和使用crypto js的?还有,为什么要使用MD5和3DES?两者都被认为是不安全的。你为什么在客户端做这些事情?这是干什么用的?在客户端执行此操作的问题是,您将密钥公开给客户端,这使得它对阻止客户端访问没有多大用处。
尝试了crypto js,但它没有给我相同的结果
也许您也可以共享js代码,我们无法读取您的监视器。下一步-您使用的不是真正安全的参数-MD5用于键拉伸,3DES带有部分键,ECB模式。真正地考虑如果使用默认的TLS(HTTPS)不能满足你的要求,如果你在基于浏览器的JS代码中实现这一点,“StuttK密钥”将不再是一个秘密。这里的实际用例是什么?通常,仅使用HTTPS加密连接就足以保护传输中的数据。