当前位置:首页 » 密码管理 » aes加密jar包

aes加密jar包

发布时间: 2023-01-03 18:39:23

java中实现aes加密时提示提示provider不能验证,因为一个jar包has unsigned entries

这个问题解决了吗???同样的问题

⑵ JAVA加密解密要用到的JAR包

一般java加密解密都需要jar包的,不同的加解密方式对应
不同的加解密包,一般加解密方式有这么几种。
资料链接:http://www.doc88.com/p-19252566394.html

⑶ JAVA程序加密,怎么做才安全

程序加密?你说的是代码加密还是数据加密。我都说一下吧。

Java代码加密:

这点因为Java是开源的,想达到完全加密,基本是不可能的,因为在反编译的时候,虽然反编译回来的时候可能不是您原来的代码,但是意思是接近的,所以是不行的。

那么怎么增加反编译的难度(阅读难度),那么可以采用多层继承(实现)方式来解决,这样即使反编译出来的代码,可读性太差,复用性太差了。

Java数据加密:

我们一般用校验性加密,常用的是MD5,优点是速度快,数据占用空间小。缺点是不可逆,所以我们一般用来校验数据有没有被改动等。

需要可逆,可以选用base64,Unicode,缺点是没有密钥,安全性不高。

而我们需要可逆而且采用安全的方式是:对称加密和非堆成加密,我们常用的有AES、DES等单密钥和双密钥的方式。而且是各种语言通用的。

全部手动敲字,望采纳,下面是我用Javascript方式做的一系列在线加密/解密工具:

http://www.sojson.com/encrypt.html

⑷ JAVA AES加密

使用AES加密时,当密钥大于128时,代码会抛出java.security.InvalidKeyException: Illegal key size or default parameters

Illegal key size or default parameters是指密钥长度是受限制的,java运行时环境读到的是受限的policy文件。文件位于${java_home}/jre/lib/security

这种限制是因为美国对软件出口的控制。

解决办法:
去掉这种限制需要下载Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files.网址如下。

下载包的readme.txt 有安装说明。就是替换${java_home}/jre/lib/security/ 下面的local_policy.jar和US_export_policy.jar
jdk 5: http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-plat-419418.html#jce_policy-1.5.0-oth-JPR

⑸ Java实现AES256位对称加密算法要替换什么包才能实现

Java 是支持AES256的,不过需要下载Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files from sun website, uncompress the file and local_policy.jar and US_export_policy.jar to your $JAVA_HOME\jre\lib\security

⑹ java加密

可以的,但是对jar包直接加密,目前只支持J2SE,还不支持J2EE。更多的还是用混编器(java obfuscator)。下面是关于HASP的介绍。

-----------------------------------------------------
针对java加密防止反编译的解决方案

众所周知,java开发语言提供了很方便的开发平台,开发出来的程序很容易在不同的平台上被移植,现在越来越多的人使用它来开发软件,与.net语言并驾齐驱。

Java有它方便的一面,同时也给开发者带来了一个不小的烦恼,就是保护程序代码变得困难,因为java语言编译和代码执行的特殊性,目前,除了HASP外,还没有一个更好的解决办法或保护方案,但如果不采取有力的措施,则自己辛辛苦苦开发出来的程序很容易被人复制而据为己有,一般情况下,大多数的人都是用混编器(java obfuscator)来把开发出来的程序进行打乱,以想达到防止反编译的目的,但是,这种方法在网上很容易找到相关的软件来重新整理,那么这个混编器工具也只能控制一些本来就没有办法的人,而对于稍懂工具的人几乎是透明的,没有任何意义。再说硬件加密锁,大多数厂商提供的加密锁只能进行dll的连接或简单的api调用,只要简单地反编译,就很容易把api去掉,这样加密锁根本起不了作用,那到底是否还有更好的解决办法呢?

现提供2种解决办法:

1、以色列阿拉丁公司的HASP HL加密锁提供的外壳加密工具中,有一个叫做数据加密的功能,这个功能可以很好的防止反编译而去掉api的调用,大家知道:硬件加密锁的保护原理就是让加密过的软件和硬件紧密地连接在一起,调用不会轻易地被剔除,这样才能持久地保护您的软件不被盗版,同时,这种方式使用起来非常简单,很容易被程序员掌握,要对一个软件实现保护,大约只需几分钟的时间就可以了,下面简单介绍一下它的原理:

运用HASP HL的外壳工具先把java解释器进行加密,那么,如果要启动这个解释器就需要有特定的加密锁存在,然后,再运用外壳工具中的数据加密功能把java程序(CLASS或JAR包)当作一个数据文件来进行加密处理,生成新的java程序(CLASS或JAR包),因为这个加密过程是在锁内完成的,并采用了128位的AES算法,这样,加密后的java程序,无论你采用什么样的反编译工具,都是无法反编译出来的。您的软件也只有被加密过的java解释器并有加密锁的情况下才能正常运行,如果没有加密锁,程序不能运行,从而达到真正保护您的软件的目的。

2、HASP HL提供专门针对java外壳加密工具,直接加密jar包,防止外编译,目前只支持J2SE,将来会进一步支持J2EE,如果情况适合则是最简单的方法。

⑺ 关于java代码打包成JAR的运行结果和eclipse中运行结果不一样的问题

用命令行启动jar文件
java -jar xx项目.jar
运行项目期间可以在命令行中看到日志记录,根据错误日志对症下药,凭借你的描述瞎指点基本上是乱弹琴!
祝你成功!

⑻ java实现aes加密或者解密,不用工具包的怎么做

importjava.security.InvalidKeyException;
importjava.security.Key;
importjava.security.NoSuchAlgorithmException;

importjavax.crypto.*;
importjavax.crypto.spec.*;

/**
*
*@authorwchun
*
*AES128算法,加密模式为ECB,填充模式为pkcs7(实际就是pkcs5)
*
*
*/
publicclassAES{

staticfinalStringalgorithmStr="AES/ECB/PKCS5Padding";

;

staticprivateCiphercipher;

staticbooleanisInited=false;

//初始化
staticprivatevoidinit()
{

//初始化keyGen
try{
keyGen=KeyGenerator.getInstance("AES");
}catch(NoSuchAlgorithmExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
keyGen.init(128);

//初始化cipher
try{
cipher=Cipher.getInstance(algorithmStr);
}catch(NoSuchAlgorithmExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(NoSuchPaddingExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}

isInited=true;
}

publicstaticbyte[]GenKey()
{
if(!isInited)//如果没有初始化过,则初始化
{
init();
}
returnkeyGen.generateKey().getEncoded();
}

publicstaticbyte[]Encrypt(byte[]content,byte[]keyBytes)
{
byte[]encryptedText=null;

if(!isInited)//为初始化
{
init();
}

Keykey=newSecretKeySpec(keyBytes,"AES");

try{
cipher.init(Cipher.ENCRYPT_MODE,key);
}catch(InvalidKeyExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}

try{
encryptedText=cipher.doFinal(content);
}catch(IllegalBlockSizeExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(BadPaddingExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}

returnencryptedText;
}

//解密为byte[]
publicstaticbyte[]DecryptToBytes(byte[]content,byte[]keyBytes)
{
byte[]originBytes=null;
if(!isInited)
{
init();
}

Keykey=newSecretKeySpec(keyBytes,"AES");

try{
cipher.init(Cipher.DECRYPT_MODE,key);
}catch(InvalidKeyExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}

//解密
try{
originBytes=cipher.doFinal(content);
}catch(IllegalBlockSizeExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(BadPaddingExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}

returnoriginBytes;
}
}

⑼ springboot上传文件到服务器aes加密

业务需求:数据库中的用户名密码明文存储在配置文件中,不是十分安全。所以将数据库中的用户名密码使用AES对称加密放入配置文件中,达到加密效果。同时也不想使用tomcat等中间件等太繁重,就使用了spring boot 轻量级框架。个人比较菜,轻喷。
关于如何搭建spring boot项目其他的人说的很详细 参考初识Spring Boot框架

入口类代码

@Controller
@SpringBootApplication
@EnableAutoConfiguration
{
publicstaticvoidmain(String[]args){
SpringApplication.run(Aesdemo1Application.class,args);
}
}

运行时只要运行main方法 或者打包后java -jar 即可(写成.bat文件 点击运行方便简单)

@Controller
publicclassGetKeyController{
@GetMapping("/getkey")
publicStringgreetingForm(Modelmodel){
model.addAttribute("passwordBean",newPasswordBean());return"index";
}
@PostMapping("/getkey")
publicStringgreetingSubmit(@){
Strings1=AESUtil.encrypt(passwordBean.getPassword(),passwordBean.getVar1());
passwordBean.setVar2(s1);
return"result";
}
}

启动后有这里还有一个控制器类
浏览器地址输入 http://localhost:8080/getkey 即可跳转到greetingForm 方法,赋入PasswordBean属性后 跳转到index.html
PasswordBean 是自己定义的bean类 里面有password var1 var2 3个属性

index.html代码

<!DOCTYPEhtml>
<htmllang="en"xmlns:th="http://www.thymeleaf.org">
<head>
<metacharset="UTF-8"/>
<title>Title</title>
</head>

<body>
<formaction="#"th:action="@{/getkey}"th:object="${passwordBean}"method="post">
<p>密码:<inputtype="text"th:field="*{password}"/></p>
<p>加密字符:<inputtype="text"th:field="*{var1}"/></p>
<p><inputtype="submit"value="Submit"/>
<inputtype="reset"value="Reset"/></p>
</form>
</body>
</html>

注意使用了thymeleaf框架 所以必须引入

输入要加密的和盐即可获得通过post方法到result即可获得加密后字符串

<!DOCTYPEhtml>
<htmllang="en"xmlns:th="http://www.thymeleaf.org">
<head>
<metacharset="UTF-8"/>
<title>Title</title>
</head>
<body>
<h1>Result</h1>
<pth:text="'密码:'+${passwordBean.password}"/>
<pth:text="'加密字符:'+${passwordBean.var1}"/>
<pth:text="'加密后字符:'+${passwordBean.var2}"/>
<ahref="/getkey">Submitanothermessage</a>
</body>
</html>

⑽ Java实现AES256位对称加密算法要替换什么包才能实现

需要下载对应版本的Java Cryptography Extension (JCE),替换JDK安装目录\jre\lib\security下的local_policy.jar和US_export_policy.jar,如果独立JRE的话也是覆盖相同路径的文件。
JDK8对应的JCE在 http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
可以参考我的文章 http://boytnt.blog.51cto.com/966121/1860309

热点内容
javafor循环嵌套if 发布:2025-08-18 23:28:21 浏览:302
西装配领算法 发布:2025-08-18 23:26:38 浏览:504
ecshopsql漏洞 发布:2025-08-18 23:17:01 浏览:802
mac临时文件夹 发布:2025-08-18 23:14:55 浏览:769
阿里云搭建传奇服务器 发布:2025-08-18 23:14:06 浏览:458
硬件加密卡 发布:2025-08-18 23:08:17 浏览:990
农信交易密码指的是什么密码 发布:2025-08-18 23:03:20 浏览:587
数组存储空间 发布:2025-08-18 23:01:50 浏览:752
如解压游戏 发布:2025-08-18 22:57:02 浏览:581
如何复制页游密码 发布:2025-08-18 22:49:13 浏览:387