嗨大家好,有任何简单的方法来加密和解密跨平台的图像,如解密iPhone中加密的android中的图像,反之亦然。
先谢谢..
答案 0 :(得分:1)
您可以使用 56位DES加密。在iphone和android中都支持它。您不能使用RSA,因为图像可能大于127字节。两年前,我尝试使用AES 128位加密。我发现使用AES 128位加密存在限制并将其置于市场。所以也要避免使用AES。 java supprots AES。因此,nadorid也支持DES
答案 1 :(得分:0)
AES加密是在android或IOS中加密文件的最佳方式。在android中我尝试过加密。这个链接可以帮助你在android中进行。下面的代码将有助于加密字节数组用android中的密钥。
encryptionKey
将是您的密码
public static byte[] encrypt(byte[] key, byte[] data) throws Exception
{
SecretKeySpec skeySpec = new SecretKeySpec(key, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted = cipher.doFinal(data);
return encrypted;
}
/**
* DEcrypt byte array with given Key using AES Algorithm
* Key can be generated using <Code>getKey()</Code>
* @param key Key that Is used for decrypting data
* @param data Data passed to decrypt
* @return decrypted data
* */
public static byte[] decrypt1(byte[] key, byte[] encrypted) throws Exception
{
SecretKeySpec skeySpec = new SecretKeySpec(key, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, skeySpec);
byte[] decrypted = cipher.doFinal(encrypted);
return decrypted;
}
/**
* get the Key for encryption this can be used for while decrypting and encrypting too.
* */
public static byte[] getKey() throws Exception
{
byte[] keyStart = EncrypteDecrypte.encryptionKey.getBytes();
KeyGenerator kgen = KeyGenerator.getInstance("AES");
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
sr.setSeed(keyStart);
kgen.init(128, sr); // 192 and 256 bits may not be available
SecretKey skey = kgen.generateKey();
byte[] key = skey.getEncoded();
return key;
}