Go后端+iOS端+Android端的AES256加密方案(Android端)

陈小锅 · · 4921 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

移动端与服务端通讯需要采用AES 256加密。

Androd客户端的实现代码为:


import android.util.Base64; import java.io.UnsupportedEncodingException; import java.security.Key; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; public class AESEncrypt { private static final String KEY_ALGORITHM = "AES"; private static final String CIPHER_ALGORITHM = "AES/ECB/PKCS7Padding"; public static String encrypt(String key, String data) { try { final Key keySpec = createKey(key); final Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM, "BC"); cipher.init(Cipher.ENCRYPT_MODE, keySpec); final byte[] encoded = cipher.doFinal(data.getBytes("UTF-8")); return Base64.encodeToString(encoded, Base64.DEFAULT); } catch (Exception e) { e.printStackTrace(); } return null; } public static String decrypt(String key, String data ) { try { final Key keySpec = createKey(key); final Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM); cipher.init(Cipher.DECRYPT_MODE, keySpec); final byte[] bytes = Base64.decode(data.getBytes("UTF-8"), Base64.DEFAULT); return new String(cipher.doFinal(bytes)); } catch (Exception e) { e.printStackTrace(); } return null; } private static Key createKey(String key) throws UnsupportedEncodingException, NoSuchAlgorithmException { final MessageDigest digest = MessageDigest.getInstance("SHA-256"); final byte[] keyByte = digest.digest(key.getBytes("UTF-8")); return new SecretKeySpec(keyByte, KEY_ALGORITHM); } }

加密结果通过Base64.Default方式转换为字符串


有疑问加站长微信联系

本文来自:开源中国博客

感谢作者:陈小锅

查看原文:Go后端+iOS端+Android端的AES256加密方案(Android端)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:1006366459

4921 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传