编写一个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文件"
要求:
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;
}
}