资源简介
存储密码的密钥管理系统,可以抵抗选择明文攻击等等,数据库oracle,服务器tomcat8.5,jdk8
代码片段和文件信息
package com.jdbcTest;
import java.io.FileInputStream;
import java.io.objectInputStream;
import java.math.BigInteger;
import java.security.Key;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Random;
import javax.crypto.Cipher;
import javax.crypto.Mac;
import javax.crypto.spec.PBEParameterSpec;
public class addResult {
byte[] salt = new byte[8];
// 构造函数 保存数据库
public addResult(String k String p) throws Exception {
String K = addK(k);
String P = addP(k p);
String S = addS();
String PHMAC = passhmac(p);
link linkorcl = new link();
Connection con = linkorcl.conn();
String sql = “insert into PASSWORD values(‘“ + K + “‘‘“ + P + “‘‘“ + S + “‘‘“ + PHMAC + “‘)“;
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE ResultSet.CONCUR_READ_ONLY);
stmt.executeUpdate(sql);
}
// 关键字 --> HMAC验证码
public String addK(String kk) throws Exception {
// 获取密钥
FileInputStream f = new FileInputStream(“key2.dat“);
objectInputStream b = new objectInputStream(f);
Key k = (Key) b.readobject();
b.close();
// 获取Mac对象
Mac m = Mac.getInstance(“HmacMD5“);
m.init(k);
m.update(kk.getBytes(“UTF8“));
byte s[] = m.doFinal();
String result = ““;
for (int i = 0; i < s.length; i++) {
result += Integer.toHexString((0x000000ff & s[i]) | 0xffffff00).substring(6);
}
return result;
}
// 密码 --> HMAC验证码
public String passhmac(String p) throws Exception {
// 获取密钥
FileInputStream f = new FileInputStream(“key4.dat“);
objectInputStream b = new objectInputStream(f);
Key k = (Key) b.readobject();
b.close();
// 获取Mac对象
Mac m = Mac.getInstance(“HmacMD5“);
m.init(k);
m.update(p.getBytes(“UTF8“));
byte s[] = m.doFinal();
String result = ““;
for (int i = 0; i < s.length; i++) {
result += Integer.toHexString((0x000000ff & s[i]) | 0xffffff00).substring(6);
}
return result;
}
// 关键字 + 密码 --> 密文
public String addP(String kk String p) throws Exception {
String ss = kk + ““ + p;
FileInputStream ff = new FileInputStream(“key3.dat“);
objectInputStream b = new objectInputStream(ff);
Key k = (Key) b.readobject();
b.close();
salt = new byte[8];
Random r = new Random();
r.nextBytes(salt);
Cipher cp = Cipher.getInstance(“PBEWithMD5AndDES“);
PBEParameterSpec ps = new PBEParameterSpec(salt 1000);
cp.init(Cipher.ENCRYPT_MODE k ps);
byte ptext[] = ss.getBytes(“UTF8“);
byte ctext[] = cp.doFinal(ptext);
return toHex(ctext);
}
// 返回加密时使用的盐
public String addS() {
return toHex(salt);
}
// 2 --> 16
private static String toHex(byte[] array) {
BigInteger bi = new BigInteger(1 array);
String hex = bi.toString(16);
int paddingLength = (array.length * 2) - hex.length();
if (paddingLength > 0)
return String.format(“%0“ + paddingLength + “d“ 0) + hex;
else
return hex;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1260 2019-07-12 18:39 系统源码\.classpath
文件 1045 2016-04-21 22:43 系统源码\.project
文件 567 2016-04-21 22:43 系统源码\.settings\.jsdtscope
文件 73 2016-04-21 23:18 系统源码\.settings\org.eclipse.core.resources.prefs
文件 364 2016-04-21 22:43 系统源码\.settings\org.eclipse.jdt.core.prefs
文件 488 2016-04-21 22:43 系统源码\.settings\org.eclipse.wst.common.component
文件 345 2016-04-21 22:43 系统源码\.settings\org.eclipse.wst.common.project.facet.core.xm
文件 49 2016-04-21 22:43 系统源码\.settings\org.eclipse.wst.jsdt.ui.superType.container
文件 6 2016-04-21 22:43 系统源码\.settings\org.eclipse.wst.jsdt.ui.superType.name
文件 4429 2019-07-12 18:39 系统源码\build\classes\com\jdbcTest\addResult.class
文件 1160 2019-07-12 18:39 系统源码\build\classes\com\jdbcTest\Key1.class
文件 3156 2019-07-12 18:39 系统源码\build\classes\com\jdbcTest\Key2.class
文件 3156 2019-07-12 18:39 系统源码\build\classes\com\jdbcTest\Key3.class
文件 3156 2019-07-12 18:39 系统源码\build\classes\com\jdbcTest\Key4.class
文件 1241 2019-07-12 18:39 系统源码\build\classes\com\jdbcTest\li
文件 2010 2019-07-12 18:39 系统源码\build\classes\com\jdbcTest\Password1.class
文件 5834 2019-07-12 18:39 系统源码\build\classes\com\jdbcTest\searchResult.class
文件 3087 2019-07-11 16:19 系统源码\src\com\jdbcTest\addResult.java
文件 552 2019-07-11 09:13 系统源码\src\com\jdbcTest\Key1.java
文件 2177 2019-07-11 16:21 系统源码\src\com\jdbcTest\Key2.java
文件 2189 2019-07-11 16:22 系统源码\src\com\jdbcTest\Key3.java
文件 2214 2019-07-11 16:23 系统源码\src\com\jdbcTest\Key4.java
文件 555 2019-07-11 09:13 系统源码\src\com\jdbcTest\li
文件 1062 2019-07-11 16:23 系统源码\src\com\jdbcTest\Password1.java
文件 5157 2019-07-11 16:24 系统源码\src\com\jdbcTest\searchResult.java
文件 1038 2019-07-11 16:24 系统源码\WebContent\add.jsp
文件 990 2019-07-11 09:46 系统源码\WebContent\addResult.jsp
文件 829 2019-07-11 09:23 系统源码\WebContent\home.jsp
文件 781 2019-07-11 09:22 系统源码\WebContent\iflogin.jsp
文件 849 2019-07-11 20:24 系统源码\WebContent\login.jsp
............此处省略21个文件信息
相关资源
- 一个使用SSM最最初级代码实现的登录
- generatorSqlmapCustom-淘淘商城专用
- WEB+SQL学生管理系统
- 最新2018年7月WebLogic漏洞(CVE-2018-289
- 基于JFinal的设备信息管理系统
- 干洗店管理系统.zip
- Websphere8.5配置
- 网页版在线音乐系统
- ssm+easyui+websocket+shiro验证+webservice
- Weblogic反序列化远程代码执行漏洞(
- struts2+tomcat+mysql实现web聊天室
- IBM_Tivoli_Access_Manager_for_e-business_WebSE
- 基于springmvc+mybatis+spring+maven+mysql的网
- 超市订单管理系统(Eclipse版).zip
- ebuy静态商城网站
- spring+springmvc+mybatis完善的增删改查,
- Haproxy+Keeplived做Mysql和web负载高可用
- 北大青鸟_超市账单管理系统含sql语句
- 免费开源WEBGIS框架搭建步骤图文
- 北大青鸟申报信息管理系统
- 网上医院挂号系统
- sql注入实战网站源码
- vue 仿移动web商城
- web实现数据库简单登陆网页
- Web服务器入侵和防护资料和工具
- AWVS11 Acunetix Web Vulnerability Scanner 11破解
- 毕业设计:教学评教系统.rar
- 小区物业管理系统.rar
- mysql-5.0.16-win32.zip
- 基于SpringMVC的学生成绩管理
评论
共有 条评论