zoukankan      html  css  js  c++  java
  • 非对称/对称加密算法,hash算法

    常见非对称加密算法

    常用的非对称加密算法有:

    1、RSA:

    RSA 是目前应用最广泛的数字加密和签名技术,比如国内的支付宝就是通过RSA算法来进行签名验证。它的安全程度取决于秘钥的长度,

    目前主流可选秘钥长度为 1024位、2048位、4096位等,理论上秘钥越长越难于破解,目前还没有公开资料证实有人能够成功破解1024位的秘钥,但显然距离这个节点也并不遥远,

    所以目前业界推荐使用 2048 位或以上的秘钥,不过目前看 2048 位的秘钥已经足够安全了,支付宝的官方文档上推荐也是2048位,当然更长的秘钥更安全,但也意味着会产生更大的性能开销。

    2、DSA

    既 Digital Signature Algorithm,数字签名算法,和 RSA 不同的是 DSA 仅能用于数字签名,不能进行数据加密解密,其安全性和RSA相当,但其性能要比RSA快。

    3、ECDSA

    Elliptic Curve Digital Signature Algorithm,椭圆曲线签名算法,是ECC(Elliptic curve cryptography,椭圆曲线密码学)和 DSA 的结合,

    相比于RSA算法,ECC 可以使用更小的秘钥,更高的效率,提供更高的安全保障,据称256位的ECC秘钥的安全性等同于3072位的RSA秘钥,特别是以BTC为代表的数字货币

    常见对称加密算法

    1、DES
    已破解,不再安全,基本没有企业在用了
    是对称加密算法的基石,具有学习价值
    密钥长度56(JDK)、56/64(BC)
    2、DESede(三重DES)
    早于AES出现来替代DES
    计算密钥时间太长、加密效率不高,所以也基本上不用
    密钥长度112/168(JDK)、128/192(BC)
    3、AES
    最常用的对称加密算法
    密钥建立时间短、灵敏性好、内存需求低(不管怎样,反正就是好)
    实际使用中,使用工作模式为CTR(最好用BC去实现),此工作模式需要引入IV参数(16位的字节数组)
    密钥长度128/192/256,其中192与256需要配置无政策限制权限文件(JDK6)
    填充模式最常用的两种PKCS5Padding和PKCS7Padding,其中后者只有BC独有。
    4、IDEA
    常用的电子邮件加密算法
    工作模式只有ECB
    密钥长度128位
    5、PBE
    综合了消息摘要算法和对称加密算法,最常见的是PBEWithMD5AndDES
    工作模式只有CBC(已丧失安全性,不推荐使用),所以PBE也不推荐使用了

    常用hash算法

    (1)MD5

    登录、注册、修改密码等简单加密操作(加盐等名词)

    生成数字签名

    (2)SHA-1

    SHA-1算法和MD5算法都有MD4算法导出,因此他们俩的特点、缺陷、应用场景基本是相同的。

    它俩的区别在于SHA-1算法在长度上是40位十六进制,即160位的二进制,而MD5算法是32位的十六进制,即128位的二进制,所以2的160次是远远超过2的128次这个数量级的,

    所以SHA-1算法相对来说要比MD5算法更安全一些。

    hash算法

  • 相关阅读:
    window/mac系统关机
    C++生成dump文件
    Qt词典搜索
    Qt将窗体变为顶层窗体
    MySql 分页
    JS之字符串与JSON转换
    简单的Map缓存机制实现
    WebSocket之获取HttpSession
    JSON格式之GSON解析
    Spring框架学习之IOC(二)
  • 原文地址:https://www.cnblogs.com/staff/p/12920867.html
Copyright © 2011-2022 走看看