.Net Core中使用NodeJs加解密DES,MD5,AES,REA
鉴于使用.net core我们的加解密也同时迁移到了跨平台上,我使用的是NodeJs加解密的。废话不多说了,还是来干活吧。
1.创建Node项目
2.添加package.json
{
"name": "node-encrpty",
"version": "0.0.0",
"description": "NodeEncrpty",
"main": "app.js",
"author": {
"name": "tl"
},
"dependencies": {
"crypto": "0.0.3"
}
}
红字标准的是要使用的npm包。
--------------------
已下是NodeJs核心代码了。
var crypto = require('crypto');
var fs = require('fs');
module.exports = {
Md5encrypt: function(callback, content) {
var md5 = crypto.createHash('md5');
md5.update(content);
var result = md5.digest('hex').toUpperCase();
callback(null, result);
//return result;
},
DESencrypt: function(callback, plaintext, key) {
var ecb = 'DES';
var enkey = new Buffer(key);
var iv = key;
var eniv = new Buffer(iv ? iv : 0, 'binary');
var cipher = crypto.createCipheriv(ecb, enkey, eniv);
cipher.setAutoPadding(true) //default true
var ciph = cipher.update(plaintext, 'utf8', 'base64');
ciph += cipher.final('base64');
callback(null, ciph);
//return ciph;
},
DESdecrypt: function(callback, encrypt_text, key) {
var ecb = 'DES';
var dekey = new Buffer(key);
var iv = key;
var deiv = new Buffer(iv ? iv : 0, 'binary');
var decipher = crypto.createDecipheriv(ecb, dekey, deiv);
decipher.setAutoPadding(true);
var txt = decipher.update(encrypt_text, 'base64', 'utf8');
txt += decipher.final('utf8');
callback(null, txt);
//return txt;
},
RSAencrypt: function(callback, plaintext, key) {
var data = new Buffer(plaintext);
var result = crypto.publicEncrypt({ key: key, padding: crypto.constants.RSA_PKCS1_PADDING }, data).toString('base64');
callback(null, result);
//return result;
},
RSAdecrypt: function(callback, encrypt_text, key) {
var data = new Buffer(encrypt_text, 'base64');
var result = crypto.privateDecrypt({ key: key, passphrase: '123456', padding: crypto.constants.RSA_PKCS1_PADDING }, data).toString('utf8');
callback(null, result);
//return result;
},
AESencrypt: function(callback, plaintext, key) {
var ecb = 'aes-128-ecb';
var clearEncoding = 'utf8';
var iv = "";
var cipherEncoding = 'base64';
var cipher = crypto.createCipheriv(ecb, key, iv);
var cipherChunks = [];
cipherChunks.push(cipher.update(plaintext, clearEncoding, cipherEncoding));
cipherChunks.push(cipher.final(cipherEncoding));
var result = cipherChunks.join('');
callback(null, result);
//return result;
},
AESdecrypt: function(callback, encrypt_text, key) {
iv = "";
var clearEncoding = 'utf8';
var cipherEncoding = 'base64';
var cipherChunks = [];
var decipher = crypto.createDecipheriv('aes-128-ecb', key, iv);
decipher.setAutoPadding(true);
cipherChunks.push(decipher.update(encrypt_text, cipherEncoding, clearEncoding));
cipherChunks.push(decipher.final(clearEncoding));
var result = cipherChunks.join('');
callback(null, result);
//return result;
}
}
3.使用属性注入类
public NodeEncrpty Cryptor { get; set; }
//RSA
Cryptor.RSAdecrypt(model.EncryptKey).Result;
//AES
Cryptor.AESdecrypt(Data, AesKey).Result;
//MD5
Cryptor.MD5encrypt(data).Result;
//DES
Cryptor.DESencrypt(data,Des_Key).Result;
好了以上就是NodeJs的加密方法了,请大家多多指教。
.Net Core中使用NodeJs加解密DES,MD5,AES,REA的更多相关文章
- C# 中使用 RSA加解密算法
一.什么是RSA RSA公开密钥密码体制.所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制. 在公开密钥密码体制中,加密密钥(即 ...
- DES,AeS加解密,MD5,SHA加密
1.DES一共就有4个参数参与运作:明文.密文.密钥.向量.其中这4者的关系可以理解为: 密文=明文+密钥+向量: 明文=密文-密钥-向量: 为什么要向量这个参数呢?因为如果有一篇文章,有几个词重复, ...
- Node.js的DES加解密和MD5加密
最基本的就是经常用的md5加密算法 代码如下 var MD5=function (data) { var _encrymd5 = require('crypto').createHas ...
- VUE+webpack+npm项目中的RSA加解密
一.安装jsencrypt npm i jsencrypt node_modules文件夹中出现jsencrypt 二.引入jsencrypt 在main.js中import: import JsEn ...
- CTF中常见的加解密(经典)
今天一早起来,就要去做早操,心里苦呀! 但是不影响我为未来的学弟学妹整理资料的心情呀!希望我的一些拙见能够帮助到学弟学妹! 永远爱你们的 ---- 新宝宝 ASCII编码 ASCII 码使用指定的7 ...
- Vue项目中的RSA加解密
前后端使用rsa加密: 一般是客户端初始化时访问登录服务时,服务端面动态生成一对RSA对,公钥传给客户端,客户端拿到后,用户输入密码后,点登录时用公钥加密返回给服务端,服务端用私钥解就行了 一.安装 ...
- 微信公众号开发--用.Net Core实现微信消息加解密
1.进入微信公众号后台设置微信服务器配置参数(注意:Token和EncodingAESKey必须和微信服务器验证参数保持一致,不然验证不会通过). 2.设置为安全模式 3.代码实现(主要分为验证接口和 ...
- Java中的RSA加解密工具类:RSAUtils
本人手写已测试,大家可以参考使用 package com.mirana.frame.utils.encrypt; import com.mirana.frame.utils.log.LogUtils; ...
- CTF中编码与加解密总结
CTF中那些脑洞大开的编码和加密 转自:https://www.cnblogs.com/mq0036/p/6544055.html 0x00 前言 正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会遇到 ...
随机推荐
- php自定义排序数组usort和uasort(uasort保持索引关联)(usort($arr, "cmp");)(比较函数时很普通函数的写法:function cmp($a, $b))
php自定义排序数组usort和uasort(uasort保持索引关联)(usort($arr, "cmp");)(比较函数时很普通函数的写法:function cmp($a, $ ...
- Flink执行时之流处理程序生成流图
流处理程序生成流图 DataStream API所编写的流处理应用程序在生成作业图(JobGraph)并提交给JobManager之前,会预先生成流图(StreamGraph). 什么是流图 流图(S ...
- 【社交分享SDK】ShareSDK for Android 2.5.9已经公布
ShareSDK for Android 2.5.9已经公布 版本号:V2.5.9 2015-3-19 1.升级Dropbox对API接口的调用.包含授权.获取用户信息,分享三个接口 2.升级Kak ...
- 百度echarts可以做什么
百度echarts可以做什么 一.总结 一句话总结:可视化做的很好,各种图都有.而且支持动态数据. 二.百度eCharts体验 前言 从昨天开始给项目里添加一些图表对比功能,上一个项目里使用的是Hig ...
- FullPage.js全屏滚动插件解说
1.主要功能 1).支持鼠标滚动 2).多个回调函数 3).支持手机.平板触屏事件 4).支持css3动画 5).支持窗口缩放 6).窗口缩放时自动调整 7).可设置滚动宽度.背景颜色.滚动速度.循环 ...
- 【t075】郁闷的记者
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 你是一个体育报社的记者,你接受到一个艰难的任务:有N支足球队参加足球比赛,现在给你一些比赛的结果,需要 ...
- Google Guava官方教程
原文链接 译文链接 译者: 沈义扬,罗立树,何一昕,*武祖 * 校对:方腾飞 引言 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] . ...
- [NPM] Pull out npm scripts into another file with p-s
A technique you might use once you start having lots of npm scripts is to use a node package that al ...
- 在视图上创建ListCtrl的做法
作者:朱金灿 来源:http://blog.csdn.net/clever101 今天介绍下如何在一个视图上动态创建一个ListCtrl. 1.新建一个MFC的单文档工程,这里暂定名字为ListDem ...
- request.getSession().getServletContext().getRealPath()的一些坑
今天是学校机房的服务器上对之前的一个网站升级时发现了一个bug,我自己的机器上用的tomcat8,机房上是tomcat7,结果一运行就开始报找不到文件,最后发现是文件分隔符的问题 原来在代码中涉及到路 ...