我把你的代码完整改了一下(几乎面目全非)。已包含加密和解密的方法,一套即用。除了Cipher生成那方法比较难明外,其他部份都很简单,相信你一看就明。
业务需求:数据库中的用户名密码明文存储在配置文件中,不是十分安全。所以将数据库中的用户名密码使用AES对称加密放入配置文件中,达到加密效果。同时也不想使用tomcat等中间件等太繁重,就使用了spring boot 轻量级框架。个人比较菜,轻喷。
关于如何搭建spring boot项目其他的人说的很详细 参考初识Spring Boot框架
入口类代码
@Controller@SpringBootApplication
@EnableAutoConfiguration
public class Aesdemo1Application {
public static void main(String[] args) {
SpringApplication.run(Aesdemo1Application.class, args)
}
}
运行时只要运行main方法 或者打包后java -jar 即可(写成.bat文件 点击运行方便简单)
@Controllerpublic class GetKeyController {
@GetMapping("/getkey")
public String greetingForm(Model model) {
model.addAttribute("passwordBean", new PasswordBean()) return "index"
}
@PostMapping("/getkey")
public String greetingSubmit(@ModelAttribute PasswordBean passwordBean) {
String s1 = 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代码
<!DOCTYPE html><html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"/>
<title>Title</title>
</head>
<body>
<form action="#" th:action="@{/getkey}" th:object="${passwordBean}" method="post">
<p>密码: <input type="text" th:field="*{password}" /></p>
<p>加密字符: <input type="text" th:field="*{var1}" /></p>
<p><input type="submit" value="Submit" />
<input type="reset" value="Reset" /></p>
</form>
</body>
</html>
注意使用了thymeleaf框架 所以必须引入
输入要加密的和盐即可获得通过post方法到result即可获得加密后字符串
<!DOCTYPE html><html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"/>
<title>Title</title>
</head>
<body>
<h1>Result</h1>
<p th:text="'密码: ' + ${passwordBean.password}" />
<p th:text="'加密字符: ' + ${passwordBean.var1}" />
<p th:text="'加密后字符: ' + ${passwordBean.var2}" />
<a href="/getkey">Submit another message</a>
</body>
</html>
一、安全性能不同
TKIP本质上是一个WEP补丁,解决了攻击者通过获得少量的路由器流量解析出路由器密钥的问题。TKIP还提供了一个较为完善的安全升级,但是对于保护网络不受黑客攻击上不够全面。
AES是一个完全独立的加密算法,远远优于任何TKIP提供的算法,该算法有128位,192位或256位的分组密码。所以AES安全性能比TKIP好。
二、速度不同
TKIP是一种过时的加密方法,而且除了安全问题,它还会减缓系统运行速度,速度会减慢至54Mbps。
支持WPA2-AES加密的802.11ac理想条件下最大速度为3.46Gbps。所以AES的运行速度相较于TKIP要快。
三、密钥长度不同
TKIP中密码使用的密钥长度为128位,这就解决了WEP密码使用的密钥长度过短的问题。
AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。
参考资料来源:百度百科-TKIP
百度百科-AES
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)