我有一个Java加密方法。我如何从Java加密文件加密的文件中解密objective-c
public static String encrypt(String orignal){
SecretKeySpec key = new SecretKeySpec(keyString.getBytes(), "AES");
IvParameterSpec initalVector = new IvParameterSpec(initialVectorParam.getBytes());
try{
Cipher cipher = Cipher.getInstance("AES/CFB8/NoPadding");
/////////////// encrypt /////////////////
cipher.init(Cipher.ENCRYPT_MODE, key, initalVector);
Log.d("AES", "oriByte: "+ orignal.getBytes());
int length = orignal.length();
for(int i=0; i<length; i++){
}
byte[] test = cipher.doFinal(orignal.getBytes());
Log.d("AES", "encByte: "+ test);
return bytes2Hex(test);
}catch (Exception e) {
Log.d("AES", "Encrypt Exception:"+orignal);
return "";
}
}
为了与PHP兼容,我使用“AES/CFB8/NoPadding”选项。 在PHP中:$ sCipher = mcrypt_encrypt(MCRYPT_RIJNDAEL_128,$ sKey,$ sStr,MCRYPT_MODE_CFB,$ sIV);
我从这里有一个Objective-c密码。 https://gist.github.com/838614
我发现Objective-c密码中没有像java这样的IvParameterSpec。 此外,getBytes方法返回一个与java不同的值。我认为这是因为java使用不同的编码方式。)
那么,我该如何在Objective-c中应用IvParameterSpec。 有没有什么办法可以像Objective-C中的java那样获得'getBytes'的值?
对于'getBytes()',一定要指明编码(有一个重载方法需要一个编码参数)。 –