package util;
//系统安全类
import java.security.*;
public class Encrype {
//加密的算法名称
private static final String encrypeType="MD5";
//构造函数
public Encrype() {
}
//随机生成5位随机数
public final static String get5Radom(){
String newString=null;
//得到0.0到1.0之间的数字,并扩大100000倍
double doubleP=Math.random()*100000;
//如果数据等于100000,则减少1
if(doubleP>=100000){
doubleP=99999;
}
//然后把这个数字转化为不包含小数点的整数
int tempString=(int)Math.ceil(doubleP);
//转化为字符串
newString=""+tempString;
//把得到的数增加为固定长度,为5位
while(newString.length()<5){
newString="0"+newString;
}
return newString;
}
//主要把传递过来的字符串参数转化为经过MD5算法加密的字符串
public final static String encrypeString(String neededEncrypedString) throws Exception{
//初始化加密之后的字符串
String encrypeString=null;
//16进制的数组
char[] hexDigits={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
//字符串的加密过程
try {
//把需要加密的字符串转化为字节数组
byte[] neededEncrypedByteTemp=neededEncrypedString.getBytes();
//得到MD5的加密算法对象
MessageDigest md = MessageDigest.getInstance(encrypeType);
//更新算法使用的摘要
md.update(neededEncrypedByteTemp);
//完成算法加密过程
byte[] middleResult = md.digest();
//把加密后的字节数组转化为字符串
int length = middleResult.length;
char[] neededEncrypedByte = new char[length * 2];
int k = 0;
for (int i = 0; i < length; i++) {
byte byte0 = middleResult[i];
neededEncrypedByte[k++] = hexDigits[byte0 >>> 4 & 0xf];
neededEncrypedByte[k++] = hexDigits[byte0 & 0xf];
}
encrypeString = new String(neededEncrypedByte);
} catch (NoSuchAlgorithmException ex) {
throw new Exception(ex);
}
//返回加密之后的字符串
return encrypeString;
}
}
分享到:
相关推荐
虽然“40位的MD5加密函数”这一说法在理论上并不符合MD5算法的标准定义,但从实际应用的角度来看,通过对MD5算法进行适当的扩展和修改,可以适应更多复杂的安全需求。然而,需要注意的是,MD5算法由于其已知的安全...
`encrypt` 方法接收一个字符串作为输入,通过 `MessageDigest.getInstance("MD5")` 创建一个MD5实例,然后对输入字符串的字节进行哈希计算,得到的结果是一组字节。为了将其转换为可读的32位十六进制字符串,遍历每...
"一种带随机数MD5算法的设计与实现" 这篇论文主要介绍了一种带随机数的MD5算法的设计和实现。MD5算法是一种常用的哈希函数,常用于数据存储和信息加密。然而,随着网络技术的发展,信息安全变得越来越重要。因此,...
MD5加密函数 for javascript 32位md5加密。例如用在用户登陆时的密码,可以在客户端...或者在某些特定的情况下用来生成风格统一的随机码---用时间组合随机数组成的字符串来进行md5加密,则得到一个类似guid的唯一编码。
在本场景中,"MD5Encode签名加密文件"指的是使用MD5算法对数据进行编码并生成签名的过程,这通常与软件安全、数据验证和防止篡改有关。在小程序的开发中,签名机制是确保应用安全性和数据完整性的重要手段。 MD5...
1. 获取当前日期(如年月日或者只取日),并加上一个序列号或随机数,形成一个字符串作为MD5的输入。 2. 对该字符串进行MD5计算,得到16进制的32位摘要。 3. 选择摘要的一部分,比如前8位或后8位,确保这部分在所有...
首先,MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能将任意长度的数据转化为固定长度的摘要,通常为128位,以16进制表示就是32个字符。MD5的主要用途是验证数据的完整性,但在密码存储领域,它...
在本文中,我们将深入探讨如何使用...通过MD5生成独特密钥和AES的高效加密解密能力,我们可以确保数据在传输和存储时的安全性。这样的实现为开发人员提供了强大的工具,帮助他们在MFC应用中实现高效而可靠的数据保护。
一个简单工具类,运用移位算法直接将字符串转化为MD5加密格式,一般用于数据库密码加密
2. 对字符串进行MD5加密: ```csharp string inputString = "Hello, World!"; byte[] inputBytes = Encoding.UTF8.GetBytes(inputString); byte[] hashBytes = md5.ComputeHash(inputBytes); ``` 3. 将哈希值...
`java.security.MessageDigest`类用于实现MD5哈希计算,`javax.crypto.Cipher`类用于进行对称加密(如AES),`java.security.KeyGenerator`或`java.security.KeyPairGenerator`用于生成密钥,而`java.security....
本文将详细介绍Java中常见的几种加密算法,包括AES加密、RSA加密、DES加密、MD5哈希加密、Base64编码以及异或(XOR)加密。理解并掌握这些算法对于开发安全的应用至关重要。 首先,AES(Advanced Encryption Standard...
在iOS中,我们可以利用Security框架提供的API来操作RSA密钥对,并进行加密解密操作。 在实际应用中,MD5通常用于生成数据的指纹,而AES用于大量数据的快速加密,RSA则用于安全地交换AES密钥或者实现数字签名。这些...
由于MD5算法产生的摘要具有不可逆性,即使原始数据被篡改,其对应的MD5值也会发生明显变化。因此,服务器通常会存储用户密码的MD5散列值,而不是明文密码。当用户输入密码时,系统会计算输入密码的MD5值并与存储的...
首先,MD5是一种广泛使用的加密散列函数,产生一个128位(16字节)的散列值,通常以32个十六进制数字的形式表示。MD5的主要用途是检测文件是否被篡改或损坏。当文件被复制、传输或存储后,通过比较新旧MD5值,可以...
在给定的示例代码中,为了生成固定长度的随机字符串,首先使用`uniqid()`生成一个唯一的ID,然后通过`md5()`将其转换为哈希值,接着使用`substr()`截取不同部分来创建一个8位的随机字符串。然而,这种方法虽然简单,...
MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,可以产生一个128位(16字节)的散列值。通过散列算法可以将任意长度的数据转换成一个固定长度的字符串,通常用于数据完整性检查、密码加密存储等...
压缩包中的"MD5加密钥加解密串测试"很可能是包含源代码、测试用例或者执行文件的资源,用于演示如何在Delphi程序中使用MD5和密钥进行字符串的加密和解密操作。这些文件可以帮助我们理解具体的实现细节,例如如何计算...
- **生成唯一HASH值**:使用`hash`或`md5`等哈希函数,结合当前时间戳和其他唯一标识,可以生成唯一的HASH值。 这些方法在不同的场景下各有优势,开发者可以根据具体需求选择合适的方法生成随机数。在处理敏感数据...
MD5算法是单向加密算法,仅能进行加密操作不能进行解密。MD5算法使用广泛,例如在身份验证、数字签名、数据完整性验证等领域。MD5算法的优点是高速、安全、不可逆,但缺点是容易碰撞攻击。 DES算法是对称加密算法,...