资源简介
基于JAVA的口令的身份认证系统,连接mysql,制作较为简单采用了swing编程,虽然连接数据库的类没封装下载者想改请自行封装。制作者为学生已上交过大作业,发出来供大家参考借鉴。具体内容就是输入密码随机加盐之后转换成字符串存入数据库中。到时候验证就采用同样的操作测试字符串是否一样。具体如何自己下载观摩。有疑问可以加我qq有空就会回答你的一些疑问。--1254891048,(作者还有一份MFC连接SQL的工程如有需要的话),请大家好好学习,切勿完全照搬。谢谢配合。
代码片段和文件信息
package algorithm;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.SecureRandom;
import java.util.Random;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
public class Agen {
public static String Agent(String DpwString Dsalt ) throws Exception {
String K;
K=Asalt(DsaltDpw);
String Dp=“00000000“;
String Dc=null;
for(int i=0;i<25;i++)
{
Dc=des(DpK);
Dp=null;
Dp=Dc;
Dc=null;
}
String s=binary(Dp.getBytes());
Dc=s.substring(0 64);
s=Agen.Atrans(Dc);
return s;
}
public static String Asalt(String DsaltString Dpw)
{
//给Dpw撒盐
String DtempDhash;
Dtemp=Dpw+Dsalt;
//Ahash 算法(md5)
Dhash=MD5(Dtemp);
return Dhash;
}
public static String Arandom()
{
Random rand =new Random();
int r;
r=rand.nextInt(2088);
String Dsalt=String.valueOf(r);
return Dsalt;
}
public static String Atrans(String Dc)
{
char str[]={‘.‘‘/‘‘0‘‘1‘‘2‘‘3‘‘4‘‘5‘‘6‘‘7‘‘8‘‘9‘‘A‘‘B‘
‘C‘‘D‘‘E‘‘F‘‘G‘‘H‘‘I‘‘J‘‘K‘‘L‘‘M‘‘N‘‘O‘‘P‘‘Q‘‘R‘‘S‘‘T‘
‘U‘‘V‘‘W‘‘X‘‘Y‘‘Z‘‘a‘‘b‘‘c‘‘d‘‘e‘‘f‘‘g‘‘h‘‘i‘‘j‘‘k‘‘l‘
‘m‘‘n‘‘o‘‘p‘‘q‘‘r‘‘s‘‘t‘‘u‘‘v‘‘w‘‘x‘‘y‘‘z‘};
Dc +=“00“;
int a=0;
String s=““;
for(int i=0;i<11;i++)
{
String b=Dc.substring(i*66*(i+1));
a=Integer.parseInt(b2);
s +=str[a];
}
return s;
}
public final static String MD5(String s)
{
char hexDigits[]={‘0‘‘1‘‘2‘‘3‘‘4‘‘5‘‘6‘‘7‘‘8‘‘9‘‘A‘‘B‘‘C‘‘D‘‘E‘‘F‘};
try {
byte[] btInput = s.getBytes();
// 获得MD5摘要算法的 MessageDigest 对象
MessageDigest mdInst = MessageDigest.getInstance(“MD5“);
// 使用指定的字节更新摘要
mdInst.update(btInput);
// 获得密文
byte[] md = mdInst.digest();
// 把密文转换成十六进制的字符串形式
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
return new String(str);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static String des(String srcString key) throws Exception {
//DES算法要求有一个可信任的随机数源
SecureRandom sr = new SecureRandom();
//创建一个 DESKeySpec 对象指定一个 DES 密钥
DESKeySpec ks = new DESKeySpec(key.getBytes(“gbk“));
//生成指定秘密密钥算法的 SecretKeyFactory 对象。
SecretKeyFactory skf = SecretKeyFactory.getInstance(“DES“);
//利用密钥工厂把DESKeySpec转换成一个SecretKey对象
SecretKey sk = skf.generateSecret(ks);
//Cipher对象实
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-07-08 15:20 ba
文件 310 2018-05-30 13:56 ba
文件 389 2018-05-28 19:49 ba
目录 0 2018-05-30 13:56 ba
目录 0 2018-05-30 13:56 ba
文件 4280 2018-05-30 13:56 ba
文件 984 2018-05-30 14:08 ba
文件 771 2018-05-30 14:08 ba
文件 781 2018-05-30 14:08 ba
文件 3625 2018-05-30 14:08 ba
文件 4028 2018-05-30 14:08 ba
文件 957 2018-05-30 14:08 ba
文件 966 2018-05-30 14:08 ba
文件 4309 2018-05-30 14:08 ba
文件 4347 2018-05-30 14:08 ba
目录 0 2018-05-30 12:48 ba
文件 724225 2018-05-29 20:26 ba
目录 0 2018-05-28 19:50 ba
目录 0 2018-05-29 22:26 ba
文件 3497 2018-05-29 22:34 ba
文件 13276 2018-05-30 14:08 ba
相关资源
- Java语言程序设计梁勇第1-10章全部完整
- javaweb用户验证码登录session
- java动物换位程序设计
- JavaWeb聊天室系统源码
- Java银行管理系统代码+mysql+uml
- Java赛车小游戏简单,适于初学者
- Java课程设计(万年历)201470
- java 实现各种排序算法动态比较
- 实时、动态的毛玻璃aero效果,javaSw
- springboot-fileUpload
- 运动会成绩管理系统(JAVA)
- Java高性能编程
- Java实验报告书样本5个实验 word格式
- 12.用Socket网络访问方法,实现简单的
- fruitstore.zip
- 耿祥义_张跃平_Java_2实用教程(3版)
- 图像处理java编程
- 打字测试软件JAVA
- java 英汉小词典实验文档及源码acces
- JSP论坛管理系统
- Java知识点总结Xmind结思维导图
- java处理图片大小等比例缩放,自定义
- java+mysql crm客户关系管理系统(毕业设
- Java web网站模板
- hamcrest-all-1.3.jar
- 用java编写的记事本,基本功能都实现
- 自动下单工具Java,已在京东商城验证
- 简单的一次二次三次方程求解-Java
- Java项目经验汇总(简历项目素材
- 外文翻译(含原文、译文及出处) 适
评论
共有 条评论