我用谷歌搜索了很多,但能够在 Objective-C 中使用 PKCS5 填充获得 Blowfish ECB 算法。
我已经尝试过这里的代码,但它没有给我正确的加密数据。即使我已经尝试过这里的代码,但它没有使用 PKSC5 填充。
不幸的是,我必须使用 Blowfish(没有其他选项)在 Objective-C 中转换以下 JAVA 代码
String objVal=<the json>;
SecretKeySpec lKeySpec = new SecretKeySpec(lKey.getBytes("UTF8"),"Blowfish");
Cipher lCipher = Cipher.getInstance("Blowfish/ECB/PKCS5Padding");
lCipher.init(Cipher.ENCRYPT_MODE, lKeySpec);
byte[] lPassword = objVal.getBytes("UTF8");
byte[] lEncryptPassword = lCipher.doFinal(lPassword);
String lEncryptString = new BASE64Encoder().encode(lEncryptPassword);
StringBuffer nString = new StringBuffer();
for (int i = 0; i < lEncryptString.length(); i++) {
int a = lEncryptString.charAt(i);
if (a != 13 && a != 10 && !lEncryptString.substring(i, i + 1).equals(" ")){
nString.append(lEncryptString.charAt(i));
}
return nString.toString();
然后对加密后的 json 进行编码:
String returnData=<encrypted json>
byte[] inputBytes = returnData.getBytes();
returnData = DatatypeConverter.printBase64Binary(inputBytes);
任何人都尝试过使用 PKSC5 填充的 Blowfish ECB 算法的解决方案。
先感谢您。
我知道这个问题已经(多次)被问过,但要么没有回答,要么没有使用 PKCS5 填充