鉴于使用.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的更多相关文章

  1. C# 中使用 RSA加解密算法

    一.什么是RSA RSA公开密钥密码体制.所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制. 在公开密钥密码体制中,加密密钥(即 ...

  2. DES,AeS加解密,MD5,SHA加密

    1.DES一共就有4个参数参与运作:明文.密文.密钥.向量.其中这4者的关系可以理解为: 密文=明文+密钥+向量: 明文=密文-密钥-向量: 为什么要向量这个参数呢?因为如果有一篇文章,有几个词重复, ...

  3. Node.js的DES加解密和MD5加密

    最基本的就是经常用的md5加密算法 代码如下 var  MD5=function (data) {        var _encrymd5 = require('crypto').createHas ...

  4. VUE+webpack+npm项目中的RSA加解密

    一.安装jsencrypt npm i jsencrypt node_modules文件夹中出现jsencrypt 二.引入jsencrypt 在main.js中import: import JsEn ...

  5. CTF中常见的加解密(经典)

    今天一早起来,就要去做早操,心里苦呀! 但是不影响我为未来的学弟学妹整理资料的心情呀!希望我的一些拙见能够帮助到学弟学妹! 永远爱你们的 ---- 新宝宝 ASCII编码 ASCII 码使用指定的7 ...

  6. Vue项目中的RSA加解密

    前后端使用rsa加密:  一般是客户端初始化时访问登录服务时,服务端面动态生成一对RSA对,公钥传给客户端,客户端拿到后,用户输入密码后,点登录时用公钥加密返回给服务端,服务端用私钥解就行了 一.安装 ...

  7. 微信公众号开发--用.Net Core实现微信消息加解密

    1.进入微信公众号后台设置微信服务器配置参数(注意:Token和EncodingAESKey必须和微信服务器验证参数保持一致,不然验证不会通过). 2.设置为安全模式 3.代码实现(主要分为验证接口和 ...

  8. Java中的RSA加解密工具类:RSAUtils

    本人手写已测试,大家可以参考使用 package com.mirana.frame.utils.encrypt; import com.mirana.frame.utils.log.LogUtils; ...

  9. CTF中编码与加解密总结

    CTF中那些脑洞大开的编码和加密 转自:https://www.cnblogs.com/mq0036/p/6544055.html 0x00 前言 正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会遇到 ...

随机推荐

  1. 三列自适应布局的实现方式(兼容IE6+)

    1.绝对定位方式 <div class="nm-3-lr"> <div class="aside-f"> <p>侧边栏1固定 ...

  2. source insight 添加自定义macro

    打开C:\Documents and Settings\xxxx\My Documents\Source Insight\Projects\Base文件夹下的em文件,可以看到都是由macro定义的一 ...

  3. [Ramda] Refactor to Point Free Functions with Ramda using compose and converge

    In this lesson we'll take some existing code and refactor it using some functions from the Ramda lib ...

  4. 雷观(十):管理自己的任务列表(TodoList)很重要

    由幼年,到青年,再到成年,你会发现自己有越来越多的事情要做.参加工作后,很可能要在多个战线上同时忙碌. 最常见的有,工作(可能会加班加点).爱情(不少人忙着恋爱,需要花费很多心思).个人娱乐(玩游戏看 ...

  5. SignalR+NAudio实现语音会话[WPF]

    原文:SignalR+NAudio实现语音会话[WPF] 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lordwish/article/detai ...

  6. 检索08- SQL语句中的go与use用法

    GO 1. 作用:向 SQL Server 实用工具发出一批 Transact-SQL 语句结束的信号.2. 语法:一批 Transact-SQL 语句 GO 如 Select 1 Select 2 ...

  7. mysql 下 计算 两点 经纬度 之间的距离 计算结果排序

    根据经纬度计算距离公式 公式 对上面的公式解释如下: Lung1 Lat1表示A点经纬度, Lung2 Lat2表示B点经纬度: a=Lat1 – Lat2 为两点纬度之差 b=Lung1 -Lung ...

  8. CentOS 挂载iso文件配置yum源

    1.挂载iso 准备好centos的光盘镜像 挂载前的准备; mkdir -p /dev/centos mkdir -p  /mnt/local_yum 挂载 mount -o loop /opt/s ...

  9. cocos2d-x 3.0学习游戏笔记的例子《卡塔防》第五步---开始建立游戏界面

    /* 说明: **1.本次游戏实例是<cocos2d-x游戏开发之旅>上的最后一个游戏,这里用3.0重写并做下笔记 **2.我也问过木头本人啦,他说:随便写.第一别全然照搬代码.第二能够说 ...

  10. 分布式服务网关(Web Api)

    分布式服务网关(Web Api) kmp算法又称“看毛片”算法,是一个效率非常高的字符串匹配算法.不过由于其难以理解,所以在很长的一段时间内一直没有搞懂.虽然网上有很多资料,但是鲜见好的博客能简单明了 ...