MD5加密调用 数据库存加密数据

编写一个Java程序,利用Swing、IO流、JDBC技术完成一个注册、登录功能。
要求:
1. 注册时要上传用户照片。
2. 照片大小小于1M的将其保存到数据库中,超过1M的保存到磁盘文件中。
3. 必须对用户密码进行加密。
4. 登录时必须查询数据库对用户名及其加密后的密码进行验证。
5. 登录成功后显示用户名、密码、用户所上传的照片。


半成品 开发速度太垃圾了

操作系统:win98
编程工具:VB5.0
用vb中的picture控件的line在picture控件中绘制完图形后,把图形放在和该控件相连接的ACCESS数据库中的一个字段中(字段定义类型为OLE),这样做数据库所占用磁盘空间很大,不知怎样做,才能使其占用很小的存储空间。

回答:

把图形放在Access数据库中会使文件尺寸增加不少。你可以只在数据库中保存文件名,而将图片放在单独的目录中,每次从磁盘中动态读入,这样占的地方比较少。
另外,你可以把BMP格式转换为GIF或JPEG格式。参考:QA000398 "如何在VB中编程使.bmp文件转换为.gif或.jpg文件"


//数据库MD5加密
package MD5CopePassWord;


import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;

public class MD5Encrypt {
//随机值(12位,由系统产生) 加盐
//原码(123)
//密码
//随机值 + 密码 (保存到数据库)
public static byte[] doEncrypt(String password) throws NoSuchAlgorithmException,
UnsupportedEncodingException {
SecureRandom random = new SecureRandom();
byte[] salt = new byte[12];
byte[] encryptPassword = null;
random.nextBytes(salt);
for(byte b : salt){
System.out.print(b + "\t");
}
System.out.println();
MessageDigest messageDigest = MessageDigest.getInstance("MD5");
messageDigest.update(salt); //追加
messageDigest.update(password.getBytes());
byte[] digest = messageDigest.digest();
encryptPassword = new byte[digest.length + 12];
System.arraycopy(salt, 0, encryptPassword, 0, 12);
System.arraycopy(digest, 0, encryptPassword, 12, digest.length);
System.out.println(encryptPassword.length);
for(byte b : encryptPassword){
System.out.print(b + "\t");
}
return encryptPassword;
}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值