资源简介
存储密码的密钥管理系统,可以抵抗选择明文攻击等等,数据库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个文件信息
相关资源
- 商家联盟会员消费系统2016年最新版带
- 旅游业信息化服务平台
- [Oracle] Oracle WebLogic Server 12c 高级管理
- 论文研究 - 使用SDI,OGC Web服务和FOS
- student-master.zip
- 毕业设计体检预约系统-springmvc+mybat
- 医院预约挂号系统 数据库
- 基于Web服务简易网络聊天工具的设计
- 基于Struts框架、Hibernate框架开发的w
- web投票系统
- WebQQ(myeclipse+sql server+web)
- 基于SSH框架的微博实现
- web服务器的访问日志access.log
- Lodop实现Web打印控件
- 基于webgis的北京地铁线路管理模拟
- dw制作的学生信息管理系统及设计报告
- ssm+mysql的web在线考试系统
- 适合Struts 初学者
- SSM框架连接MySQL实现简单的增删改查
- 云服务器web管理系统.zip
- 基于SSM框架的完整项目 Spring+SpringMV
- web在线考试系统全源码和mysql数据库
- 基于ssh框架的web论坛系统源码
- web课程设计-网页阅读器源代码+数据库
- 家庭财务管理系统SpringMVC3+Spring3+Myb
- 一个使用SSM最最初级代码实现的登录
- generatorSqlmapCustom-淘淘商城专用
- WEB+SQL学生管理系统
- 最新2018年7月WebLogic漏洞(CVE-2018-289
- 基于JFinal的设备信息管理系统
评论
共有 条评论