java加密的几种方式

 我来答
绝世IT云军团
2018-06-29 · 超过19用户采纳过TA的回答
知道答主
回答量:38
采纳率:75%
帮助的人:3.1万
展开全部

基本的单向加密算法: 

  • BASE64 严格地说,属于编码格式,而非加密算法

  • MD5(Message Digest algorithm 5,信息摘要算法)

  • SHA(Secure Hash Algorithm,安全散列算法)

  • HMAC(Hash Message Authentication Code,散列消息鉴别码)

复杂的对称加密(DES、PBE)、非对称加密算法: 

  • DES(Data Encryption Standard,数据加密算法)

  • PBE(Password-based encryption,基于密码验证)

  • RSA(算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman)

  • DH(Diffie-Hellman算法,密钥一致协议)

  • DSA(Digital Signature Algorithm,数字签名)

  • ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)

代码参考:

  • /** 

  • * BASE64加密 

  • *  

  • * @param key 

  • * @return 

  • * @throws Exception 

  • */  

  • public static String encryptBASE64(byte[] key) throws Exception {  

  • return (new BASE64Encoder()).encodeBuffer(key);  

  • }  

  • /** 

  • * MD5加密 

  • *  

  • * @param data 

  • * @return 

  • * @throws Exception 

  • */  

  • public static byte[] encryptMD5(byte[] data) throws Exception {  

  • MessageDigest md5 = MessageDigest.getInstance(KEY_MD5);  

  • md5.update(data);  

  • return md5.digest();  

  • }  

  • /** 

  • * SHA加密 

  • *  

  • * @param data 

  • * @return 

  • * @throws Exception 

  • */  

  • public static byte[] encryptSHA(byte[] data) throws Exception {  

  • MessageDigest sha = MessageDigest.getInstance(KEY_SHA);  

  • sha.update(data);  

  • return sha.digest();  

  • }  

  • }  

  • /** 

  • * 初始化HMAC密钥 

  • *  

  • * @return 

  • * @throws Exception 

  • */  

  • public static String initMacKey() throws Exception {  

  • KeyGenerator keyGenerator = KeyGenerator.getInstance(KEY_MAC);  

  • SecretKey secretKey = keyGenerator.generateKey();  

  • return encryptBASE64(secretKey.getEncoded());  

  • }  

  • /** 

  • * HMAC加密 

  • *  

  • * @param data 

  • * @param key 

  • * @return 

  • * @throws Exception 

  • */  

  • public static byte[] encryptHMAC(byte[] data, String key) throws Exception {  

  • SecretKey secretKey = new SecretKeySpec(decryptBASE64(key), KEY_MAC);  

  • Mac mac = Mac.getInstance(secretKey.getAlgorithm());  

  • mac.init(secretKey);  

  • return mac.doFinal(data);  

  • }  

爱花花猪1314
2020-04-28 · 超过98用户采纳过TA的回答
知道小有建树答主
回答量:302
采纳率:61%
帮助的人:122万
展开全部

朋友你好,很高兴为你作答。

首先,Java加密能够应对的风险包括以下几个:

1、核心技术窃取

2、核心业务破解

3、通信模块破解

4、API接口暴露

本人正在使用几维安全Java加密方式,很不错,向你推荐,希望能够帮助到你。

几维安全Java2C针对DEX文件进行加密保护,将DEX文件中标记的Java代码翻译为C代码,编译成加固后的SO文件。默认情况只加密activity中的onCreate函数,如果开发者想加密其它类和方法,只需对相关类或函数添加标记代码,在APK加密时会自动对标记的代码进行加密处理。

与传统的APP加固方案相比,不涉及到自定义修改DEX文件的加载方式,所以其兼容性非常好;其次Java函数被完全转化为C函数,直接在Native层执行,不存在Java层解密执行的步骤,其性能和执行效率更优。

如果操作上有不明白的地方,可以联系技术支持人员帮你完成Java加密。

希望以上解答能够帮助到你。

参考资料,点这里----java加密方式:网页链接

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
junbatian1
2018-06-15 · 超过32用户采纳过TA的回答
知道答主
回答量:164
采纳率:84%
帮助的人:54.3万
展开全部
只用过MD5
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式