
我需要将一些Json数据从PHP服务器端点传输到我的Android客户端,但是如果端点暴露,我想保护数据的明显读取.因此,我计划在PHP端点中编写一些简单的字符串加密功能,并让我的客户端对其进行解密.有没有现成的图书馆可以这样做?
解决方法:
使用mcrypt PHP模块进行加密
使用javax.crypto Java包进行解密
PHP中的加密:
function encrypt($message, $initialVector, $secretKey) { return base64_encode( mcrypt_encrypt( MCRYPT_RIJNDAEL_128, md5($secretKey), $message, MCRYPT_MODE_CFB, $initialVector ) );}JAVA中的解密:
public static String md5(String input) throws NoSuchAlgorithmException { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] messageDigest = md.digest(input.getBytes()); BigInteger number = new BigInteger(1, messageDigest); return number.toString(16);}public String decrypt(String encryptedData, String initialVectorString, String secretKey) { String decryptedData = null; try { SecretKeySpec skeySpec = new SecretKeySpec(md5(secretKey).getBytes(), "AES"); IvParameterSpec initialVector = new IvParameterSpec(initialVectorString.getBytes()); Cipher cipher = Cipher.getInstance("AES/CFB8/Nopadding"); cipher.init(Cipher.DECRYPT_MODE, skeySpec, initialVector); byte[] encryptedByteArray = (new org.apache.commons.codec.binary.Base64()).decode(encryptedData.getBytes()); byte[] decryptedByteArray = cipher.doFinal(encryptedByteArray); decryptedData = new String(decryptedByteArray, "UTF8"); } catch (Exception e) { LOGGER.deBUG("Problem decrypting the data", e); } return decryptedData;}资源:http://www.logikdev.com/2010/11/01/encrypt-with-php-decrypt-with-java/
总结以上是内存溢出为你收集整理的PHP中的简单字符串加密和Java中的解密?全部内容,希望文章能够帮你解决PHP中的简单字符串加密和Java中的解密?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)