- 加密方式 :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 端加解密:<