JAVA 采用 AES/CBC/PKCS7Padding 和 DES/CBC/PKCS5Padding 模式,C++处理的的机制都一样,不足16字节需填充16-len个的16-len,如9个字节则需补充7个7;如果正好是16,则补充16个16。解密后补充的字节可以收用如下示例代码去掉:
const char* p = clearText.c_str();
int k = 0;
while(*p){
if((int)*p <= 16){
break;
}
k++;
p++;
}
clearText = string(clearText.c_str(),k);
使用C++BUILDER 2010自带BASE64编码比较复杂,使用OPENSSL 的BASE64 简化。