读书人

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

发布时间: 2012-09-15 19:09:29 作者: rapoo

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;}}

读书人网 >其他数据库

热点推荐