erlang 与 java 之间数据一次一密处理

该博客探讨了如何在Erlang和Java之间使用AES_CBC_256加密算法进行一次一密的数据传输。在Erlang端,详细介绍了加密和解密过程,包括调用crypto模块、PKCS5补位方法。而在Java端,解释了解密过程中遇到的‘非法密钥大小或默认参数’问题,提供了解决这个问题的链接,即更新JCE政策文件。
摘要由CSDN通过智能技术生成
  • 加密方式 :AES_CBC_256
  • 加密频率 :一次一密
  • 跨系统     :erlang 与 java


erlang 端加解密:


调用crypto模块

1 、加密 :

      crypto:aes_cbc_256_encrypt(Key, IVec, pkcs5_padding(Text, 16))

      Key(私钥):根据数字证书动态取值,也可以约定不变,32bytes

      Ivec(初始向量): 一般为16 bytes全0

     %% pkcs5_padding方法,处理要加密的数据,为16bytes的倍数

     pkcs5_padding(PlainText, BlockSize) when is_binary(PlainText) ->
           Rem = size(PlainText) rem BlockSize,
           Padding = lists:duplicate(BlockSize - Rem, BlockSize - Rem),
           Binary = list_to_binary(Padding),
          <<PlainText/binary, Binary/binary>>;
     pkcs5_padding(PlainText, BlockSize) when is_list(PlainText) ->
          Rem = length(PlainText) rem BlockSize,
          Padding = lists:duplicate(BlockSize - Rem, BlockSize - Rem),
          PlainText ++ Padding.

    

2 、解密 :
          crypto:aes_cbc_256_encrypt(Key, IVec, pkcs5_padding(Text, 16))


java 端加解密:<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值