• 7.node.js的DES的加密和解密操作示例


    原文地址:https://mygo.iteye.com/blog/2018882

    最近用到这个功能,所以存在自己博客方便查找。

    var assert = require('assert');  
    var crypto = require('crypto');  
      
    function test_des(param) {  
        var key = new Buffer(param.key);  
        var iv = new Buffer(param.iv ? param.iv : 0)  
        var plaintext = param.plaintext  
        var alg = param.alg  
        var autoPad = param.autoPad  
          
        //encrypt  
        var cipher = crypto.createCipheriv(alg, key, iv);  
        cipher.setAutoPadding(autoPad)  //default true  
        var ciph = cipher.update(plaintext, 'utf8', 'hex');  
        ciph += cipher.final('hex');  
        console.log(alg, ciph)  
      
        //decrypt  
        var decipher = crypto.createDecipheriv(alg, key, iv);  
        cipher.setAutoPadding(autoPad)  
        var txt = decipher.update(ciph, 'hex', 'utf8');//我使用的是base64  
        txt += decipher.final('utf8');      
        assert.equal(txt, plaintext, 'fail');  
    }  
      
    test_des({  
        alg: 'des-ecb',  
        autoPad: true,  
        key: '01234567',  
        plaintext: '1234567812345678',  
        iv: null  
    })  
      
    test_des({  
        alg: 'des-cbc',  
        autoPad: true,  
        key: '01234567',  
        plaintext: '1234567812345678',  
        iv: '12345678'  
    })  
      
    test_des({  
        alg: 'des-ede3',    //3des-ecb  
        autoPad: true,  
        key: '0123456789abcd0123456789',  
        plaintext: '1234567812345678',  
        iv: null  
    })  
      
    test_des({  
        alg: 'des-ede3-cbc',    //3des-cbc  
        autoPad: true,  
        key: '0123456789abcd0123456789',  
        plaintext: '1234567812345678',  
        iv: '12345678'  
    })  
  • 相关阅读:
    go语言切片
    sharding-jdbc分库分表配置,多数据源
    spring boot的配置文件
    go-micro生成项目
    自定义注解+aop实现jetcache功能扩展
    linux下mysql忘记密码解决方案
    MySQL 1130错误,无法远程连接
    Linux/UNIX 上安装 MySQL
    BarTender遇到的问题
    SourceTree安装使用
  • 原文地址:https://www.cnblogs.com/Nick-Hu/p/10593713.html
Copyright © 2020-2023  润新知