美文网首页
java aes cbc加解密模式(前后端)

java aes cbc加解密模式(前后端)

作者: lang的码农学习路 | 来源:发表于2019-04-22 15:29 被阅读0次

    之前在做一个论坛项目的时候,安全性测试时候检测到前后端传输数据的时候使用了明文形式,于是去找了一个适用于前后端加解密的一种加密方式,aes加密的cbc模式,本人对加密的算法一窍不通,这里只是做一下怎么使用并不研究算法。

    1.首先了解一下aes的几种加密模式
    a.电码本模式(Electronic Codebook Book (ECB)
    这种模式是将整个明文分成若干段相同的小段,然后对每一小段进行加密
    b.密码分组链接模式(Cipher Block Chaining (CBC))
    这种模式是先将明文切分成若干小段,然后每一小段与初始块或者上一段的密文段进行异或运算后,再与密钥进行加密。


    12232506-27faefa42fde42d28bef168b20736a61.png
      c.计算器模式(Counter (CTR))
                计算器模式不常见,在CTR模式中, 有一个自增的算子,这个算子用密钥加密之后的输出和明文异或的结果得到密文,相当于一次一密。这种加密方式简单快速,安全可靠,而且可以并行加密,但是在计算器不能维持很长的情况下,密钥只能使用一次
      d.密码反馈模式(Cipher FeedBack (CFB))
      e.输出反馈模式(Output FeedBack (OFB))(这里介绍aes的cbc模式)
    

    2.首先列出测试项目的项目结构


    image.png

    3.前端测试代码


    image.png
        ![image.png](https://img.haomeiwen.com/i7489468/e4479b56fbcf33bb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    

    这里需要到的一个加密crypto-js.js文件


    image.png

    这里提一下 前后端使用的秘钥必须相同

    4.服务端代码


    image.png

    这里测试解密结果所以接收到参数后直接进行了打印

    重点看下aes cbc加密模式的一个加解密工具类

    image.png

    秘钥必须为16位

    解密代码执行过程


    image.png image.png image.png image.png

    下面是一个加密


    image.png image.png image.png

    代码基本已经贴出来了 下面看下运行过程

    image.png image.png

    打印输出应该是写错了 这里应该是解密前, 还有一个这里看起来像base64加密,这里说明一下 这里是先aes加密后在base64的,所以不是简单的base64加密

    image.png image.png

    解密成功了 这样就可以避免前后端使用明文数据进行裸奔。

    相关文章

      网友评论

          本文标题:java aes cbc加解密模式(前后端)

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