level 5
ssilspro
楼主

DES、3DES、AES对称加密模块和之前的校验模块一样通过广播传递参数,不过变量最长10240(或者列表拼接或3.0),所以更长的数据需要直接调用模块接口XXXInit、XXUpdate、XXXfinal,数据通过update分次传递,它会攒齐一个block再发去加密,当然也可以自己把接口改成用列表传递。
例如传递abc:aes_init(1(1加密0解密)),aes_update(a),aes_update(bc),aes_final, 前面一个init后面一个final,中间n个update,实际传数据时应该传ascii的十进制字符串,每个数带且只带一个空格,末尾的数也带,传其他格式的参数同样要自己修改(模块DecStringToList)。
des和3des是64bit/8字节一块,aes是128bit/16字节,仅仅不足一块时填0,需要自己处理填充(包括0填充以及PKCS5/PKCS7等)。
des密钥是8字节,3des是3倍,aes-128是16字节(128位),aes192是24,aes256是32。
加密模式除了ECB,其他都需要初始数组IV,长度和块长一样,des64bit,aes128bit,
CFB、OFB模式只处理了块长度的方式,小于块长的也需要自己修改吧,
CTR模式IV全部当计数了,没用随机数。
先把密钥,模式,IV,容量等等传过去,再用加密或解密广播就可以了。
和其他的兼容还要看详细的处理方式,不兼容肯定是别人的锅(甩)
DES:/projects/275315873/
3DES:/projects/275315907/
AES:/projects/275318115/
