常见加密算法

发布时间: 更新时间: 总字数:649 阅读时间:2m 作者: 分享 复制网址

常见加密算法介绍

术语

  • 加密是通过算法对数据进行编码的过程,加密的密文可以通过算法得到原始信息。加密的目的保证数据的安全存储、传输等
  • 哈希(hash)是通过算法将任意大小的数据映射到固定长度的过程,得到的值称为哈希值哈希的目的是为了验证数据是否被篡改
  • 一般是随机值,作为哈希函数的一个入参,加盐可以使密码哈希出唯一值

对称加密

  • 加解密使用相同的密钥,算法包括:
    • DES(Data Encryption Standard)
    • AES
    • IDEA
    • RC6
    • CAST5 实现方式:将原始数据分隔成固定大小的块,逐个进行加密
  • 特点:
    • 加解密使用同一个密钥
    • 效率高,适用于大量数据加密的场景
  • 缺点:
    • 算法公开,安全性取决于密钥大小,密钥越大,加解密效率越低
    • 无法确定加密者

非对称加密

  • 使用一对密钥来分别进行加密和解密
    • 公开密钥(public key,公钥)
    • 私有密钥(private key,私钥),必须保证私密性
  • 特点:
    • 公钥加密的数据,只有对应的私钥才能解密
    • 私钥加密的数据,只有对应的公钥才能解密
    • 加解密复杂,效率低,能耗高(缺点)
  • 算法:
    • RSA(加密、数字签名)
    • DSA(数字签名)
    • ECC
    • Elgamal
    • D-H
    • 背包算法等
  • 使用场景
    • 数据加密
    • 数据签名:防止明文数据被篡改
      • 验证签发者,使用密钥对数据(原始数据经过 hash 算法的值)进行加密得到签名密文
      • 使用者通过公钥和密文得到hash值,通过验证上述 hash 值与数据实际计算的hash是否匹配判断数据是否被篡改
    • 对称密钥交换

单向散列

  • 将任意数字缩小成固定大小的 指纹,特点如下:
    • 任意长度输入、固定长度输出
    • 不可逆的:无法从指纹生成原始数据
    • 不同字符串生成的指纹不同
  • 算法
    • md5(128bits)
    • sha1(160bits)
    • sha224
    • sha256
    • sha364
    • sha512
  • 使用场景:保证数据的完整性
最新评论
加载中...
Home Archives Categories Tags Statistics