zoukankan      html  css  js  c++  java
  • 对称加密算法

    http://www.cnblogs.com/happyhippy/archive/2006/12/23/601353.html

      //参数的意思

    1. test_des({  
    2.     alg: 'des-ede3-cbc',   //进程  
    3.     autoPad: true, 
    4.     key: '0123456789abcd0123456789',  //钥匙
    5.     plaintext: '1234567812345678',  //明码文本
    6.     iv: '12345678'  //初始化向量
    7. })  

    http://qson.iteye.com/blog/2041133

    nodejs  对称加密

    1. var assert = require('assert');  
    2. var crypto = require('crypto');  
    3.   
    4. function test_des(param) {  
    5.     var key = new Buffer(param.key);  
    6.     var iv = new Buffer(param.iv ? param.iv : 0)  
    7.     var plaintext = param.plaintext  
    8.     var alg = param.alg  
    9.     var autoPad = param.autoPad  
    10.       
    11.     //encrypt  
    12.     var cipher = crypto.createCipheriv(alg, key, iv);  
    13.     cipher.setAutoPadding(autoPad)  //default true  
    14.     var ciph = cipher.update(plaintext, 'utf8', 'hex');  
    15.     ciph += cipher.final('hex');  
    16.     console.log(alg, ciph)  
    17.   
    18.     //decrypt  
    19.     var decipher = crypto.createDecipheriv(alg, key, iv);  
    20.     cipher.setAutoPadding(autoPad)  
    21.     var txt = decipher.update(ciph, 'hex', 'utf8');  
    22.     txt += decipher.final('utf8');      
    23.     assert.equal(txt, plaintext, 'fail');  
    24. }  
    25.   
    26. test_des({  
    27.     alg: 'des-ecb',  
    28.     autoPad: true,  
    29.     key: '01234567',  
    30.     plaintext: '1234567812345678',  
    31.     iv: null  
    32. })  
    33.   
    34. test_des({  
    35.     alg: 'des-cbc',  
    36.     autoPad: true,  
    37.     key: '01234567',  
    38.     plaintext: '1234567812345678',  
    39.     iv: '12345678'  
    40. })  
    41.   
    42. test_des({  
    43.     alg: 'des-ede3',    //3des-ecb  
    44.     autoPad: true,  
    45.     key: '0123456789abcd0123456789',  
    46.     plaintext: '1234567812345678',  
    47.     iv: null  
    48. })  
    49.   
    50. test_des({  
    51.     alg: 'des-ede3-cbc',    //3des-cbc  
    52.     autoPad: true,  
    53.     key: '0123456789abcd0123456789',  
    54.     plaintext: '1234567812345678',  
    55.     iv: '12345678'  
    56. })  
  • 相关阅读:
    BZOJ3514:GERALD07加强版(LCT,主席树)
    BZOJ2729:[HNOI2012]排队(组合数学)
    BZOJ4517:[SDOI2016]排列计数(组合数学,错排公式)
    BZOJ3123:[SDOI2013]森林(主席树,启发式合并)
    BZOJ3786:星系探索(Splay,括号序)
    BZOJ2212:[POI2011]Tree Rotations(线段树合并)
    BZOJ5329:[SDOI2018]战略游戏(圆方树,虚树)
    CF613D:Kingdom and its Cities(树形DP,虚树)
    BZOJ3611:[HEOI2014]大工程(树形DP,虚树)
    BZOJ2286:[SDOI2011]消耗战(树形DP,虚树)
  • 原文地址:https://www.cnblogs.com/benpaodexiaopangzi/p/6247682.html
Copyright © 2011-2022 走看看