• 大小: 1.94MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-02
  • 语言: 数据库
  • 标签: web  

资源简介

存储密码的密钥管理系统,可以抵抗选择明文攻击等等,数据库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.xml

     文件         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\link.class

     文件       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\link.java

     文件       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个文件信息

评论

共有 条评论