美文网首页
加密解密

加密解密

作者: cutecat | 来源:发表于2019-04-06 23:21 被阅读0次

加密解密

createCipheriv(algorithm, key, iv)

algorithm: 算法有很多,常用的里面,aes-256-cbc,rc4加密解密速度比较快
key: 加密解密公用的密钥,可以是字符串,可以是buffer

const keyString = 'c31d92f8a2e703711ac623aef687110a'
const securityKey = (keyString instanceof Buffer) ? keyString : new Buffer(keyString)
/**
* @param {string:require} data 要加密的字符串
* @return {string} 加密后的字符串
*/
export const encrypt = (data) => {
 try {
   const iv = new Buffer(16)
   // 用aes-256-cbc算法生成cipher实例
   const cipher = crypto.createCipheriv('aes-256-cbc', securityKey, iv)
   // update待加密内容到cipher实例,编码格式为utf8,输出16进制格式
   let crypted = cipher.update(data, 'utf8', 'hex')
   // 通过final方法输出加密串
   crypted += cipher.final('hex')
   logger.info(`encrypt data[${data}] to crypted[${crypted}]`)
   return crypted
 } catch (err) {
   logger.warn(`encrypt data[${data}] error`, err)
   return null
 }
}
/**
 * @param {string:require} data 要解密的字符串
 * @return {string} 解密后的字符串
 */
export const decrypt = (data) => {
  try {
    const iv = new Buffer(16)
    // 用aes-256-cbc算法生成decipher实例
    const decipher = crypto.createDecipheriv('aes-256-cbc', securityKey, iv)
    // update待解密内容到decipher实例
    let decoded = decipher.update(data, 'hex', 'utf8')
    // 通过final方法输出解密串
    decoded += decipher.final('utf8')
    logger.info(`decrypt data[${data}] to decoded[${decoded}]`)
    return decoded
  } catch (err) {
    logger.warn(`decrypt data[${data}] error`, err)
    return null
  }
}

常用的加密算法:
base64
aes-256-cbc: 108
blowfish: 96
rc4:92

相关文章

  • AES加密代码(.net和java可互转)

    .net加密解密代码 java加密解密代码

  • 最近用到的一些String的一些常用方法

    string的Base64加密/解密 oc 加密 oc解密 swift 加密 swift 解密 oc字典转jso...

  • https简单介绍

    # 对称加密 加密解密使用同一个密钥,速度较快,如aes # 非对称加密 公钥加密,私钥解密,私钥加密,公钥解密,...

  • 加密

    来源于:MD5加密,Base64加密/解密,AES加密/解密

  • Rsa加解密

    /*** Rsa 加解密* 用法:* (1)公钥加密,私钥解密* (2)私钥加密,公钥解密*/class ...

  • iOS开发证书相关总结

    加密、解密 对称加密、非对称加密 对称加密:加密、解密使用相同的密钥;DES、AES(Mac、Windows的磁盘...

  • Java AES/DES加密&解密

    DES DES加密&解密代码如下: AES AES加密&解密代码如下:

  • 非对称加密和对称加密

    非对称加密和对称加密在加密和解密过程、加密解密速度、传输的安全性上都有所不同,具体介绍如下: 1、加密和解密过程不...

  • 非对称加密和对称加密的区别

    非对称加密和对称加密在加密和解密过程、加密解密速度、传输的安全性上都有所不同,具体介绍如下: 1、加密和解密过程不...

  • 对称加密

    对称加密的特点1)加密/解密使用相同的密钥2)加密和解密的过程是可逆的(明文->密文->明文)对称加密和解密 缺点...

网友评论

      本文标题:加密解密

      本文链接:https://www.haomeiwen.com/subject/eqzdiqtx.html