精华内容
下载资源
问答
  • node加密解密

    千次阅读 2017-03-07 16:20:22
    * 作 用 :aes 加密->base64 加密->urldecode 加密 * @param :string data 加密的内容 string key 密钥 iv 补充码 默认为空 * @return:string string 密文 */ exports.encryption = function(data
    var crypto = require("crypto");
    /**
     *  作  用 :aes 加密->base64 加密->urldecode 加密
     *  @param :string data 加密的内容 string key 密钥 iv 补充码 默认为空
     *  @return:string  string 密文
    */
    exports.encryption = function(data,key,iv){
    	iv = iv || "";
    	var clearEncoding = "utf8";
    	var cipherEncoding = 'hex';    
        var cipher = crypto.createCipheriv("aes-256-ecb", key, iv);
    	cipher.setAutoPadding(true);
    	var ciphers = cipher.update(data,clearEncoding,cipherEncoding);
    	ciphers += cipher.final(cipherEncoding);
    	//var _js = Buffer.from(_jms, "hex").toString("base64");//高版本使用
    	var _js=new Buffer(ciphers,cipherEncoding).toString("base64");//base64 加密
    	return encodeURIComponent(_js);//urlencode
    }
    /**
     *  @param :string data 解密的内容 string key 密钥 iv 补充码 默认为空
     *  @return:string  string 密文
    */
    exports.decryption = function (data, key, iv) {
        if (!data) {
            return "";
        }
        iv = iv || "";
        var clearEncoding = 'utf8';
        var cipherEncoding = 'base64';    
        var decipher = decodeURIComponent(data);
    	var decipher_base = new Buffer(decipher, 'base64')
    	var decipher_base = decipher_base.toString('hex');
    	var decipher_aes = crypto.createDecipheriv('aes-256-ecb', key, iv);
    	decipher_aes.setAutoPadding(true);
    	decipher_aes.update(decipher_base, "hex", "utf8");
    	return decipher_aes.final("utf8");
    }
    /**
     *  作  用 :base64 加密->urlencode
     *  @param :array data 加密的内容 string key 密钥 
     *  @return:string data 密文
    */
    exports.base64encry = function(data,key){
    	var str = data.join(key);
    	var cipher = new Buffer(str);
        var base64 = cipher.toString('base64');
        return encodeURIComponent(base64);
    }
    /**
     *  作  用 :urldecode 解密 ->base64 解密
     *  @param :string data 解密的内容 string key 密钥 
     *  @return:array  data 密文
    */
    exports.base64decry = function(data,key){
    	var urlde = decodeURIComponent(data);
    	var decipher = new Buffer(urlde, 'base64')
        var decipher_str = decipher.toString();
        return decipher_str.split(key);
    }
    /**
     *  作  用 :生成用户的唯一标识
     *  @param :string text 要加密的字符对象
     *  @return:string data 时间格式
    */
    exports.usersign = function(text){
    	var buf = crypto.randomBytes(16);
        var SecrectKey = buf.toString('hex');//密钥加密;
        textjson.secrectkey=SecrectKey;
        var Signture = crypto.createHmac('sha1', SecrectKey);//定义加密方式
        Signture.update(text);
        var miwen=Signture.digest().toString('base64');//生成的密文后将再次作为明文再通过pbkdf2算法迭代加密;
        return miwen;
    }
    
    展开全文
  • Neutron是一个开源加密货币项目,一个Sha256d,工作量证明/权益证明混合,重点在于权益证明和Masternode技术。 只需在运行中的钱包24/7中保持余额即可生成中子代币。 无需昂贵的专用硬件或高电耗。 Neutron是一种...
  • node加密和解密字符串

    2017-09-19 18:47:00
    注意细节:密匙要求加密和解密一致 参考地址: http://www.cnblogs.com/laogai/p/4664917.html 第一步:引入模块 var crypto = require('crypto'); 第二部逻辑处理 //todo:这里处理二维码的封装 //循环...

    注意细节:密匙要求加密和解密一致

    参考地址:

    http://www.cnblogs.com/laogai/p/4664917.html

    第一步:引入模块

    var crypto = require('crypto');

    第二部逻辑处理

    //todo:这里处理二维码的封装
    //循环result,调用 reduce的Boxer方法,然后保存加密后的结果,并且在结果前加网址http://jaunsoo.com
    //加密开始
    var str = JSON.stringify('user'); //明文
    var secret = 'luoliangfeigenius007'; //密钥--可以随便写
    var cipher = crypto.createCipher('aes192', secret);
    var enc = cipher.update(str, 'utf8', 'hex'); //编码方式从utf-8转为hex;
    enc += cipher.final('hex'); //编码方式从转为hex;
    console.log(enc)//输出加密后结果
    //解密开始
    var ss = enc; //这是user加密后的结果 赋值给变量ss
    var decipher = crypto.createDecipher('aes192', secret);
    var dec = decipher.update(ss, 'hex', 'utf8'); //编码方式从hex转为utf-8;
    dec += decipher.final('utf8'); //编码方式从utf-8;
    //封装后的结果应该是 http://jaunsoo.com/xxxxxxxxxxxxxxx
    console.log(JSON.parse(dec)) //这是解密后的结果
    //todo end

    转载于:https://www.cnblogs.com/luoliangfei/p/7553454.html

    展开全文
  • let md5 = require('md5-node') // md5(加密的数据) console.log(md5('muzidigbig')) 效果   express中使用   // 数据加密 let md5 = require('md5-node'); //获取登录提交数据 app.post('/dologin',(req,...

    案例:

    md5.js

    // 引入
    let md5 = require('md5-node')
    // md5(加密的数据)
    console.log(md5('muzidigbig'))

    效果

     

    express中使用

     

    // 数据加密
    let md5 = require('md5-node');
    //获取登录提交数据
    app.post('/dologin',(req,res) => {
    
        let username = req.body.username;
        let password = md5(req.body.password);//对登录密码进行加密
        // res.send(JSON.stringify(req.body));
    
        // 原因:res.redirect('/product')会再一次的调用res.writeHead()导致重复
        // res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
        MongoClient.connect(dataBaseUrl,(err,client) => {
            if(err) {
                res.send('数据库连接失败!')
            }else{
                // res.write('数据库连接成功!');
                let db = client.db('productmanage');
                db.collection('user').find({
                    username:username,
                    password:password
                }).toArray((err,result) => {
                    if(err){
                        res.send('查询数据失败!')
                    }else{
                        if(result.length>0){
                            console.log('登录成功!'+JSON.stringify(result));
                            // 2.登录成功之后保存用户信息,便于下次登录进行判断
                            req.session.username = result[0]
                            
                            // session.userinfo = result[0]
                            // 序列化成json字符串
                            res.redirect('/product');//登录成功跳转到商品列表页面
                        }else{
                            res.send('<script>alert("登录失败");location.href="/login"</script>')
                        }
                        client.close()
                    }
                })
            }
        })
    })

     

     

    展开全文
  • 1.数据加密与解密主要使用了node的crypto模块的Cipher与Decipher类来加密解密,加密与解密的方法主要有以下几种:1.1 使用Cipher与Decipher对象作为流来加密解密// 加载 crypto 模块 const crypto = require('crypto...

    1.数据加密与解密

    主要使用了node的crypto模块的Cipher与Decipher类来加密解密,加密与解密的方法主要有以下几种:

    1.1 使用Cipher与Decipher对象作为流来加密解密

    // 加载 crypto 模块
    const crypto = require('crypto')
    // 解密密钥
    const secret = '123456'
    // 加密与解密算法 可用 crypto.getCiphers() 方法查看算法各类
    const Algorithm = 'aes192'
    // 加密
    const cipher = crypto.createCipher(Algorithm, secret)
    // 加密后的数据
    let encryted = ''
    // 订阅 readable 事件
    cipher.on('readable', () => {
      // 使用 read 方法读取数据
      let data = cipher.read()
      if (data) {
        // 生成数据
        encryted += data.toString('hex')
      }
    })
    // 订阅 end 事件打印加密后的数据
    cipher.on('end', () => {
      console.log(encryted)
    })
    // 写入加密数据
    cipher.write('Hello World!', 'utf8')
    cipher.end()
    
    // 解密数据
    const decipher = crypto.createDecipher(Algorithm, secret)
    // 解密后的数据
    let decryted = ''
    // 订阅readable事件读取加密数据并生成解密后的数据
    decipher.on('readable', () => {
      let data = decipher.read()
      if (data) {
        decryted += data
      }
    })
    // 订阅 end 事件打印解密后的数据
    decipher.on('end', () => {
      console.log(decryted)
    })
    // 写入要解密的数据,与设置密数据的编码
    decipher.write(encryted, 'hex')
    decipher.end()

    1.2 使用Cipher与Decipher的update方法与final方法来加密解密

    // 加载 crypto 模块
    const crypto = require('crypto')
    // 解密密钥
    const secret = '123456'
    // 加密与解密算法 可用 crypto.getCiphers() 方法查看算法各类
    const Algorithm = 'aes192'
    // 加密
    const cipher = crypto.createCipher(Algorithm, secret)
    // 更新加密数据
    let crypted = cipher.update('Hello World!', 'utf8', 'hex')
    // 生成加密数据
    crypted += cipher.final('hex')
    // 打印加密数据
    console.log(crypted)
    
    // 解密
    const decipher = crypto.createDecipher(Algorithm, secret)
    // 更新解密数据
    let decrypted = decipher.update(crypted, 'hex', 'utf8')
    // 生成解密数据
    decrypted += decipher.final('utf8')
    // 打印解密数据
    console.log(decrypted)

    1.3 使用Cipher与管道流来加密解密文件

    // 加载 crypto 模块
    const crypto = require('crypto')
    // 加载 fs 模块
    const fs = require('fs')
    // 解密密钥
    const secret = '123456'
    // 加密与解密算法 可用 crypto.getCiphers() 方法查看算法各类
    const Algorithm = 'aes192'
    // 创建加密实例
    const cipher = crypto.createCipher(Algorithm, secret)
    // 创建输入流 input.txt 为要加密的文件
    const read = fs.createReadStream('input.txt')
    // 创建输出流 encrypted.xt 加密后的文件
    const write = fs.createWriteStream('encrypted.txt')
    // 通过管道流生成加密文件
    read.pipe(cipher).pipe(write)
    // 创建实例解密文件
    const decipher = crypto.createDecipher(Algorithm, secret)
    // 创建输入流 encrypted.txt 为要解密的文件
    const input = fs.createReadStream('encrypted.txt')
    // 创建输出流 decrypted.txt 为解密后的文件
    const ouput = fs.createWriteStream('decrypted.txt')
    // 通过管道流生成解密文件
    input.pipe(decipher).pipe(ouput)

    2.创建Hash与Hmac摘要

    2.1 创建Hash

    // 加载 crypto 模块
    const crypto = require('crypto')
    // 创建 Hash 的算法, 可通过crypt.getHashes() 方法获取算法各类
    const Algorithm = 'md5'
    // 创建 hash 实例
    const hash = crypto.createHash(Algorithm)
    // 使用update方法更新要加密的数据
    hash.update('Hello Wrold!')
    // 生成加密后的数据, 以 hex 方式生成
    let digest = hash.digest('hex')
    // 打印生成结果
    console.log(digest)

    2.1 创建Hmac

    // 加载 crypto 模块
    const crypto = require('crypto')
    // 创建摘要的算法
    const Algorithm = 'md5'
    // 密钥
    const secret = '123456'
    // 创建 hmac 实例
    const hmac = crypto.createHmac(Algorithm, secret)
    // 使用 update 方法更新加密数据
    hmac.update('Hello World!')
    // 使用 digest 方法生成加密数据
    const digest = hmac.digest('hex')
    // 打印加密后数据
    console.log(digest)

    3. 签名生成与验证签名

    签名主要作用如下:

    1. 确认信息来源于特定的主体。
    2. 确认信息完整、未被篡改。

    签名的验证主要经两个过程,发送方生成签名,接收方验证签名, 需要使命openssl生成公钥与私钥,私钥用来生成签名,公钥用来验证签名数据

    私钥生成:openssl genrsa  -out private_key.pem 1024

    公钥生成: openssl req -key private_key.pem -new -x509 -out public_key.pem

    // 加载 crypto 模块
    const crypto = require('crypto')
    // 加载 fs 模块
    const fs = require('fs')
    // 读取私钥
    const privateKey = fs.readFileSync('private_key.pem').toString()
    // 读取公钥
    const publicKey = fs.readFileSync('public_key.pem').toString()
    // 验证的数据
    const data = 'Hello World!'
    // 签名算法
    const Algorithm = 'SHA256'
    
    
    // 创建签名
    const sign = crypto.createSign(Algorithm)
    // 使用 update 方法更新数据
    sign.update(data)
    // 生成签名 以 hex 格式输入数据
    const sig = sign.sign(privateKey, 'hex')
    
    // 验证签名
    const verify = crypto.createVerify(Algorithm)
    // 使用 updata 方法更新数据
    verify.update(data)
    // 验证签名的数据是否正确
    const result = verify.verify(publicKey, sig, 'hex')
    // 打印签名验证结果
    console.log(result)

    展开全文
  • 但是用node加密玩的java解密不了。原因:node默认的是 DEFAULT_ENCRYPTION_SCHEME = 'pkcs1_oaep' 而java中默认的是pkcs1。 node-rsa源码:https://github.com/rzcoder/node-rsa/blob/ea5c17...
  • 要用nodejs开发接口,实现远程调用,如果裸奔太危险了,就在网上找了一下nodejs的加密,感觉node-rsa挺不错的,下面来总结一下简单的rsa加密解密用法 初始化环境 新建一个文件夹 node-rsa-demo , 终端进入,运行下面...
  • Node加密与解密处理

    千次阅读 2020-01-11 00:20:46
    Node.js中,使用OpenSSL类库作为其内部实现加密与解密处理的基础手段,这是因为目前OpenSSL已经成为了一个经过严格测试的可靠的加密与解密算法的实现工具。 在Node.js中,OpenSSL类库被封装在crypto模块中,因此...
  • node md5加密

    2021-01-07 11:49:01
    这里写自定义目录标题关于使用node ---- md5进行前端加密安装blueimp-md5包引入md5在需要加密的数据中进行使用 关于使用node ---- md5进行前端加密 场景:后端要求需要对登录密码进行加密,否则登录失败!!! 安装...
  • 发现node加密解密比较少,在此记录下 一,先生成公钥私钥 下载安装windows平台openssl密钥生成工具,执行安装目录bin下的”openssl.exe”,执行后弹出命令窗口如下 生成私钥 输入genrsa -out rsa_private_...
  • node中aes加密

    千次阅读 2017-02-16 15:31:42
    高级加密标准AES  aes是一种分组加密标准,每个加密块大小为128位,允许的密钥长度为128、192和256位。AES作为一种分组加密算法为了适应不同的安全性要求和传输需求允许在多种不同的加密模式下工作,包括ECB、...
  • node.js文件加密

    2021-03-30 20:32:22
    node fs.readFileSync 读取大文件会存在数据读不全的问题,最好使用fs.readFile异步读取方法,或者使用流的读取方式fs.createReadStream。 关于文件内容加解密,可以理解为对二进制数据进行加解密。 比如一个字符串 ...
  • node与javascriptAES加密

    2017-05-18 14:05:54
    node与前端aes加密
  • 主要介绍了NODE.JS加密模块CRYPTO常用方法介绍,需要的朋友可以参考下
  • node中的加密模块 cryptocrypto 加密模块(不是很安全):是使用md5来加密,这是node自带的模块,不需要安装。 - 引入模块:const crypto = require('crypto');当用户注册时,我们将从前端页面映射到后台的密码进行...
  • MongoCrypt 一个node.js的加密
  • Node.js开发加密货币

    2018-06-12 15:51:09
    Nodejs开发加密货币》,是一个加密货币产品的详细开发文档,涉及到使用Nodejs开发产品的方方面面,从前端到后台、从服务器到客户端、从PC到移动、加密解密等各个环节。
  • node--对称加密和解密

    2019-09-26 09:21:32
    node--对称加密和解密
  • node bcrypt密码加密

    2020-08-23 22:48:16
    // 导入bcrypt const bcrypt = require('bcrypt'); //生成随机字符穿 // gensalt方法接受接受一个只作为参数 // 数值越大生成随机字符串复杂度越高 // 数值越小生成的随机字符串复杂度...要加密的明文 //2.随机..
  • 本篇文章主要给大家分享了Node.js非对称加密方法以及代码实例讲解,对此有兴趣的朋友参考学习下吧。
  • node-rsa非对称加密

    千次阅读 2018-07-04 07:33:50
    因为 比特币 中使用的非对称加密,所以在npm中对比找到一个比较方便也直观的库:node-rsa。 非对称加密的关键在于 有 公钥 / 私钥 用法: a.生成一对公钥私钥 b.公钥加密 -&amp;gt; 对应私钥解密 c.私钥加密...
  • 1、密码加密 2、校验密码是否正确 二、包的使用 1、安装 npm install node-auth0 三、使用步骤 1、导包 import NodeAuth from 'node-auth0'; 2、实例化对象 class User1Dao extends BaseDao { ...
  • node.js 代码加密

    2020-12-08 14:29:14
    一下教程将教大家如何加密 node.js 代码 演示环境 win 10 node.js v12.12 npm v6.14.8 步骤 1,安装 pkg npm install pkg 我在写文章的这一刻执行命令安装的是 pkg 4.4.9 2,编写 helloword 脚本 index.php...
  • node进行Des加密

    千次阅读 2018-11-01 15:27:24
    前后端配合进行密码加密欢迎使用Markdown编辑器关于Des加密生成密钥合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、...
  • node MD5加密

    2019-08-23 18:06:30
    const crypto = require('crypto'); class MD5 { //随机盐值 getRandomSalt() { return Math.random().toString().slice(2, 6);... //md5加密数据 cryptPwd(password, salt) { // 密码加盐 ...
  • 主要给大家介绍的是Node.js数据加密传输,本文主要介绍的是明文传输,文中通过示例代码介绍的很详细,相信对于大家的理解和学习会很有帮助,有需要的朋友们下面来一起学习学习吧。
  • crypto作为nodeJS已经稳定下来的模块在整个node中具有举足轻重的地位,一切app都需要加密解密,那么crypto就是一个提供加密功能的模块。在这个模块中已经打包了OpenSSL hash, HMAC(哈希信息验证码),cipher(加密...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,384
精华内容 20,153
关键字:

node加密