android之AES加密解密
2016-01-11 17:46
465 查看
aes加密之android代码。
引用代码文章地址:
http://www.funboxpower.com/php_android_ios_aes
这篇文章讲解了php,android之间的aes加密解密的交互,经验证是没有问题的。
package cn.example.aes; import android.util.Base64; import java.security.MessageDigest; import java.security.spec.AlgorithmParameterSpec; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; public class AESCrypt { /** 加密key*/ private final String SEED_16_CHARACTERAes = "aaaaaaaaaaaaaaaa"; /** 解密key*/ private final String SEED_16_CHARACTERDes = "bbbbbbbbbbbbbbbb"; public AESCrypt(){ } /** 获取偏移向量*/ public AlgorithmParameterSpec getIV() { // 偏移向量初始化(要求为16位) byte[] iv = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; IvParameterSpec ivParameterSpec; ivParameterSpec = new IvParameterSpec(iv); return ivParameterSpec; } /** 加密*/ public String encrypt(String plainText) throws Exception { MessageDigest digest = MessageDigest.getInstance("SHA-256"); digest.update(SEED_16_CHARACTERAes.getBytes("UTF-8")); byte[] keyBytes = new byte[32]; System.arraycopy(digest.digest(), 0, keyBytes, 0, keyBytes.length); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding"); SecretKeySpec key = new SecretKeySpec(keyBytes, "AES"); AlgorithmParameterSpec spec = getIV(); cipher.init(Cipher.ENCRYPT_MODE, key, spec); byte[] encrypted = cipher.doFinal(plainText.getBytes("UTF-8")); String encryptedText = new String(Base64.encode(encrypted,Base64.DEFAULT), "UTF-8"); return encryptedText; } /** 解密*/ public String decrypt(String cryptedText) throws Exception { MessageDigest digest = MessageDigest.getInstance("SHA-256"); digest.update(SEED_16_CHARACTERDes.getBytes("UTF-8")); byte[] keyBytes = new byte[32]; System.arraycopy(digest.digest(), 0, keyBytes, 0, keyBytes.length); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding"); SecretKeySpec key = new SecretKeySpec(keyBytes, "AES"); AlgorithmParameterSpec spec = getIV(); cipher.init(Cipher.DECRYPT_MODE, key, spec); byte[] bytes = Base64.decode(cryptedText, Base64.DEFAULT); byte[] decrypted = cipher.doFinal(bytes); String decryptedText = new String(decrypted, "UTF-8"); return decryptedText; } }
引用代码文章地址:
http://www.funboxpower.com/php_android_ios_aes
这篇文章讲解了php,android之间的aes加密解密的交互,经验证是没有问题的。
相关文章推荐
- android — NDK生成so文件
- dp与px间相互转换:利用Android原生API实现px转换dp,dp转换px
- Android Studio 百度地图 230错误 Scode码校验失败解决方案
- Android5.1 系统之省电模式探索一启动流程
- 解决“your project path contains non-ascii characters”问题(android studio不支持中文路径问题)
- Android 性能的建议
- android博客学习
- Android Property Animation属性动画集:AnimatorSet(5)
- Android RecyclerView添加头部和尾部
- Android Sdk国内开发地址
- android TouchImageView 进阶
- android窗口管理剖析
- 如何优雅的退出android应用
- android.util.Xml 分析
- Android 自定义View过度绘制性能优化<7>
- Android.mk
- Android性能优化总结
- ubuntu 12.04 下安装android编译环境
- Android客户端 和 pc服务器 建立socket连接并发送数据
- Android RatingBar 评价栏 星星 大小 样式 设置