常见的加密方式

常见的加密方式

取盐校验 (取密码中的关键信息) 不可逆

相关技术:

md5 md2 md4 (带密码的 md5)
md5 默认填充值(key) 0123456789abcdef

md5 :
  明文:123456
  密文
    16位的:49ba59abbe56e057
    32位的:e10adc3949ba59abbe56e057f20f883e
    40位的:(不常用)

sha1(40 位) sha256(64 位) sha512(128 位)

sha1:
  明文:123456
  密文:
    40:7c4a8d09ca3762af61e59520943dc26494f8941b

sha256:
  明文:123456
  密文:
    64:8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92

sha512:
  明文:123456
  密文:
    128:ba3253876aed6bc22d4a6ff53d8406c6ad864195ed144ab5c87621b6c233b548baeae6956df346ec8c17f5ea10f35ee3cbc514797ed7ddd3145464e2a0bab413

对称加密 (可还原)

可以根据同一个密钥进行加解密
明文可以根据同一个密钥进行加密, 密文可以根据相同的密钥进行解密为明文.

相关技术:

AES DES 3DES

非对称加密 (可还原)

一个明文可以根据一个密钥加密出多个不同的密文
多个不同的密文可以根据相同的密钥 解密出相同的明文

相关技术:

RSA (私钥 公钥)

服务器有: 公钥和私钥
客户端只有: 公钥

对称加密和非对称加密的密文共同特点

  1. 十六进制的
  2. base64 : base64 编码的组成内容是由 A-Z a-z 0-9 + _ = 等组成的

JS 自带的加解密 API 方法

atob(‘密文’) : 解密方法
btoa(‘明文’) : 加密方法

let x = '我是coco'

let encryption = btoa(encodeURIComponent(x))

console.log(encryption) // JUU2JTg4JTkxJUU2JTk4JUFGY29jbw==

let decryption = decodeURIComponent(atob(encryption))

console.log(decryption) //  我是coco

你可能感兴趣的:(JavaScript)