C#加密NodeJS解密
2024-10-10 18:13:28
C#代码:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("encrypted as: {0}", TripleDESEncrypt("", "abcdefghijklmnop", "pgfYadhCout=", false)); }
public static string TripleDESEncrypt(string toEncrypt, string key, string iv, bool useHashing)
{
byte[] keyArray;
byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);
byte[] ivArray = Convert.FromBase64String(iv); if (useHashing)
{
MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key));
}
else
keyArray = UTF8Encoding.UTF8.GetBytes(key); var tdes = new TripleDESCryptoServiceProvider();
tdes.Key = keyArray;
tdes.IV = ivArray;
// tdes.Mode = CipherMode.CBC; // which is default
// tdes.Padding = PaddingMode.PKCS7; // which is default ICryptoTransform cTransform = tdes.CreateEncryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, ,
toEncryptArray.Length);
return Convert.ToBase64String(resultArray, , resultArray.Length);
}
}
NodeJS的javascript代码:
var crypto = require('crypto');
var alg = 'des-ede-cbc';
var key = new Buffer('abcdefghijklmnop', 'utf-8');
var iv = new Buffer('pgfYadhCout=', 'base64'); var EncryptDES = function (data) {
var cipher = crypto.createCipheriv(alg, key, iv);
var encoded = cipher.update(data, 'ascii', 'base64');
encoded += cipher.final('base64');
return encoded;
}; var DecryptDES = function (data) {
var encrypted = new Buffer(data, 'base64');
var decipher = crypto.createDecipheriv(alg, key, iv);
var decoded = decipher.update(encrypted, 'binary', 'ascii');
decoded += decipher.final('ascii');
return decoded;
};
最新文章
- CentOS MySQL 配置
- 多态与异常处理ppt作业
- ViewHolder数据错乱BUG
- php继承、多态
- C# 调用百度地图Web服务API
- JDBC数据库编程基本流程
- 别人网站生成的json
- CSS3技巧:利用css3径向渐变做一张优惠券(转)
- Tomcat下的一些配置
- 快速建立Linux c/c++编译环境
- 英蓓特Mars board的android4.0.3源码编译过程
- 【nodejs】安装browser-sync 遇到错误提示
- python timeit模块用法
- C++多态及其实现原理
- 2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践
- pytorch查看模型weight与grad
- Android/IOS 微信及浏览器(h5)中唤起本地APP,唤起浮层,然后用外部浏览器打开唤起某本地APP
- 秒懂HTTPS
- [ACM-ICPC 2018 徐州赛区网络预赛][D. Easy Math]
- gSOAP 初体验