java加密的几种方式

如题所述

基本的单向加密算法: 

    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);  

    }  

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-28

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

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

1、核心技术窃取

2、核心业务破解

3、通信模块破解

4、API接口暴露

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

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

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

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

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

参考资料,点这里----java加密方式:

第2个回答  2018-06-15
只用过MD5

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网