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);
}
如何对java的class类进行加密可以使用Virbox Protector Standalone 加壳工具对java的class类进行加密,支持各种开发语言的程序加密 。可防止代码反编译,更安全,更方便
产品简介
Virbox Protector Standalone提供了强大的代码虚拟化、高级混淆与智能压缩技术,保护您的程序免受逆向工程和非法修改 。
Virbox Protector Standalone 将被保护的程序代码转换为虚拟机代码 , 程序运行时 , 虚拟机将模拟程序执行,进入和离开虚拟机都有高级代码混淆 。虚拟机配合代码混淆可以达到很好的保护效果,尤其是开发者的私有逻辑 。高级混淆利用花指令和代码非等价变形等技术,将程序的代码,转换成一种功能上等价 , 但是难于阅读和理解的代码,可充分干扰静态分析 。应用程序的解压缩含有动态密码,让一切自动脱壳工具失效,有效的阻止.Net、PE 程序的直接反编译 。
特点
多种加密策略:代码虚拟化、高级混淆、智能压缩
性能分析:智能分析引擎,一键分析各个函数模块调用的次数
支持多种开发语言:多种开发语言加壳支持
源码级保护:保护到汇编级别,c#保护IL级别
免费更新:免费版本升级
JAVA程序加密,怎么做才安全程序加密?你说的是代码加密还是数据加密 。我都说一下吧 。
Java代码加密:
这点因为Java是开源的,想达到完全加密,基本是不可能的,因为在反编译的时候 , 虽然反编译回来的时候可能不是您原来的代码,但是意思是接近的,所以是不行的 。
那么怎么增加反编译的难度(阅读难度),那么可以采用多层继承(实现)方式来解决,这样即使反编译出来的代码 , 可读性太差,复用性太差了 。
Java数据加密:
我们一般用校验性加密,常用的是MD5,优点是速度快,数据占用空间小 。缺点是不可逆,所以我们一般用来校验数据有没有被改动等 。
需要可逆 , 可以选用base64,Unicode,缺点是没有密钥 , 安全性不高 。
而我们需要可逆而且采用安全的方式是:对称加密和非堆成加密 , 我们常用的有AES、DES等单密钥和双密钥的方式 。而且是各种语言通用的 。
全部手动敲字,望采纳,下面是我用Javascript方式做的一系列在线加密/解密工具:
怎样为一个java程序加密? 谢谢只给编译后的.jar文件,不给.java文件
不过要说明的是,java因为是字节码,所以没有办法防止被反编译 。
最多也就是做一下代码混淆,比如把方法或变量名改成无意义的名称,或者加一些完全无用的代码进去,让恶意攻击的人难以看懂
java程序加密都看不到的,
java程序分为:
编辑
编译
解释
运行
运行的都是.class字节码文件,看不到源文件的,你不用操心
采纳即可
【怎么对java代码加密 怎么对java代码加密文件】关于怎么对java代码加密和怎么对java代码加密文件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。
推荐阅读
- 迅雷直播官网手机版,迅雷直播官网手机版入口
- 关于asp.netxml导入excel文件的信息
- sqlserver2008int的简单介绍
- excel如何跟踪快递,excel怎么追踪单元格
- c语言怎么区分奇偶函数 c语言区分奇数偶数
- 路由器登录怎么登录不上去,路由器登录不上怎么回事
- 拍摄没有构思什么主题,拍摄构思是什么意思
- 什么设备直播高清,用什么直播清晰度高
- mysql学完后怎么用 学完mysql下一步学什么