编写一个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;
}
}
分享到:
相关推荐
本篇将详细讲解如何在PowerBuilder 9.0(PB9.0)中调用MD5加密方法。 首先,我们需要理解MD5的基本概念。MD5算法由Ronald Rivest在1991年设计,它的目的是提供一种快速、简单的方法来验证文件或数据的完整性。MD5的...
PB9.0调用MD5加密是一个常见的编程实践,特别是在数据安全和验证领域。PowerBuilder 9.0(简称PB9.0)是一款强大的客户端-服务器应用程序开发工具,支持多种数据库系统,它允许开发者通过编写代码来实现各种功能,...
4. **调用MD5加密函数**:创建一个函数,接受输入字符串,然后调用上述集成的库函数进行MD5计算。函数返回的将是32位的十六进制字符串。 5. **源码分析**:在提供的压缩包中,可能包含了具体的PowerBuilder源代码,...
Kettle中使用JavaScript调用jar包对文件内容进行MD5加密.本文主要知识点: JavaScript调用jar包对文件内容进行MD5加密,返回加密md5值 Kettle实现对文件内容的加密,返回加密md5值 2.使用方法 1)下载jar包 ...
MD5加密广泛应用于各种领域,包括数据存储、网络传输和身份验证等。 在jsp网页中实现MD5加密可以使用JavaBean来实现。MD5类实现了RSA Data Security公司的MD5 message-digest算法。该类中定义了一些静态final变量,...
在VB6.0中实现MD5加密算法,主要是为了确保数据的完整性和不可篡改性,比如在存储密码、数字签名等方面有重要作用。 在VB6.0中实现MD5加密,通常需要调用Windows API函数,因为VB6.0本身并不直接支持MD5。Windows ...
2. **代码示例**:展示如何在代码中调用MD5Util或FileMD5Util进行加密。例如,计算字符串MD5: ```java import com.example.md5util.MD5Util; // 假设MD5Util在com.example.md5util包下 public class Main { ...
用户只需提供待加密的字符串,批处理文件将自动调用Java程序计算MD5值并显示结果。 总的来说,这个“windows下MD5加密工具bat文件”提供了一种简单便捷的方式,在Windows环境中利用Java进行MD5加密。用户无需了解...
在宏录制过程中,你需要模拟MD5加密的操作,如复制数据、调用外部工具计算MD5等。由于宏的具体实现较为复杂且不适用于此场景,这里不再详述,建议优先使用VBA函数。 在提供的压缩包文件中,`md5宏.xla`可能包含了一...
MD5(Message-Digest Algorithm 5)是一种广泛用于数据安全的哈希函数,它能够将任意长度的数据转化为固定长度的128位(通常用32位的十六进制数表示)摘要信息。在IT行业中,MD5常用于数据校验、密码存储等方面,...
在实际应用中,可以通过创建`Md5Encrypt`类的实例并调用其`Encrypt`方法来对字符串进行MD5加密。 ```java Md5Encrypt md = new Md5Encrypt(); String password = "your_password"; String encryptedPassword = md....
`hex_md5(需要加密的字符串)` 是一个典型的MD5加密函数调用方式,其中`hex_md5`是函数名,括号内的是待加密的字符串。这个函数会返回一个32位的16进制表示的MD5摘要。例如,如果你有一个字符串 "hello",经过`hex_md...
3. **使用示例**:在Delphi中,首先需要引入对应的库单元,然后创建对象实例,调用相应的方法进行MD5计算。以下是一个简单的代码示例: ```delphi uses DCUtils; var MD5Hash: String; begin MD5Hash := ...
然而,由于其存在碰撞漏洞(即不同的输入可能会产生相同的输出),MD5现在更多地被用于验证文件完整性,而非敏感数据的加密。 在Java中实现MD5加密通常涉及以下步骤: 1. 引入库:Java标准库提供`java.security....
MD5.DLL是MD5加密算法的一个动态链接库,它封装了MD5的计算逻辑,供应用程序调用。在PowerBuilder中,我们可以通过引入外部DLL的方式来利用这些功能。以下是一个详细的步骤和知识点: 1. **引入MD5.DLL**:在Power...
在Java中,MD5加密可以通过特定的库或API来实现,这些库或API通常封装了MD5的计算过程,使得开发者能够方便地对字符串或其他数据进行加密。 "Md5加密jar包"可能包含了两种不同的MD5加密实现,这可能是因为每个jar包...
批量加密是针对大量数据进行相同操作的过程,MD5批量加密则意味着可以一次性处理多个字符密码,避免了逐个加密的繁琐。这对于处理大量用户密码或者需要验证的数据集来说,极大地提高了工作效率。例如,在开发数据库...
### C# MD5加密调用 #### 一、概述 在现代软件开发中,数据安全性变得尤为重要。MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希算法,用于生成固定长度(通常为128位)的哈希值。由于其不可逆性,MD5经常...
MD5(Message-Digest Algorithm 5)是一种广泛使用...这个"MD5加密demo"提供了一个完整的MD5加密示例,可以帮助初学者快速理解和应用MD5。通过学习和实践,可以更好地理解哈希函数的工作原理,以及在实际项目中的应用。