美文网首页
javaweb常用的加密算法

javaweb常用的加密算法

作者: 乡村码农 | 来源:发表于2022-01-10 09:04 被阅读0次

    最近因为要和第三方公司进行业务对接,数据传输需要进行加密。合作公司使用的是RSA加密,我一脸懵逼!
    懵逼原因是我太菜了,平常只做crud。也正好借这个机会了解一下加密技术。

    这篇文章按照内容的重要性从高到低排序 适合食用>

    1、javaweb项目常用的加密算法

    首先是算法的分类,主要要有:

    • 对称加密算法: DES 、3DES、AES(微信用)、IDEA
    • 非对称加密算法:RSA、DSA、ECC
    • 不可逆加密算法(摘要):MD5、SHS
      上面列举了辣么多,记不住,个人较常用的也就是黑体标出来的

    2、简单的使用场景

    (1)用户登录,用户名和密码加密 des、md5

    • 一般是前端先用MD5加密密码,再用对称加密算法des加密用户名、密码,传入后台。
    • 后台用des解密用户名和密码,然后用这个用户名去数据库取密码(存的就是MD5加密过的),
    • 再与前端传入的密码进行比较是否一致,如果一致则密码正确。

    (由于MD5加密的不可逆性,所以很多网站登录忘记密码的都是直接重置密码,而不是找回密码,我想可能网站本身也不知道你的密码是啥吧)

    这个流程也是我看了我们有些项目之后了解的,但是我发现有个项目是用户名和密码都是des加密传输到后台,然后在后台解密密码之后再进行md5加密,再和数据库的密码进行对比,我当时看完就一张黑人问号脸???(这不是自己骗自己么)

    (2)正常的数据通讯,比如与第三方公司接口对接、等 rsa

    3、几种算法的使用教程

    DES使用示例代码 java版
    RSA使用示例代码 java版
    MD5使用示例代码 java版

    4、几种算法的特点比较、如何选择

    • 对称加密算法:des ,速度较快,适用用于大量数据的加密场合,3des其实本质也是des,只不过是一块数据用3个不同的密钥进行3次加密,强度更高了。
    • 非对称加密算法:RSA,速度较慢,安全性相对较好,一般需要加上SHA256withRSA进行签名
      对大量的数据不建议使用,因为性能差
    • 不可逆加密算法:MD5,也可以说是一个摘要算法或者哈希算法,它的特点是不可还原,速度一般
      如果用MD5加密密码,被截获后,还是可以通过枚举比对的方式,进行破解;另外,因为是哈希算法,存在哈希碰撞的可能,也就是说,两篇不同的报文,进行md5之后可能是一样的,虽然概率比较低

    相关文章

      网友评论

          本文标题:javaweb常用的加密算法

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