encryptutil
时间: 2023-08-09 16:00:33 浏览: 64
EncryptUtil是一个加密工具类,用于实现数据的加密和解密。它提供了一系列加密算法,例如对称加密算法(如AES、DES等)和非对称加密算法(如RSA、ECC等)。
通过EncryptUtil,我们可以将敏感数据进行加密,以确保数据安全性。对称加密算法使用相同的密钥进行加密和解密,具有加密速度快的优点,适用于大量数据的加密;非对称加密算法使用一对相关联的密钥进行加密和解密,其中一个密钥是公开的,另一个密钥是私有的,其安全性更高,适用于保护通信内容。
在使用EncryptUtil时,我们可以选择合适的加密算法和密钥长度,根据实际需求进行加密操作。加密后的数据只有在使用正确的密钥进行解密时才能还原,从而保证了数据的机密性和完整性。
除了基本的加密和解密功能外,EncryptUtil还提供了其他功能,如签名和验签。通过使用数字签名算法,可以验证数据的完整性和真实性,防止数据被篡改。
总之,EncryptUtil是一个功能强大的加密工具类,可以保护数据的安全,并提供了完整性验证的功能。在进行数据加密和解密时,我们可以依靠EncryptUtil提供的各种算法和功能,以确保数据的保密性和完整性。
相关问题
EncryptUtil.md5
在Java中,EncryptUtil类提供了对数据进行MD5加密的方法。下面是一个示例代码[^1]:
```java
String str = "1234567";
String encrypt = EncryptUtil.encrypt(str);
System.out.println(encrypt); // 输出:14C749ACC3821362
```
这段代码将字符串"1234567"进行MD5加密,并将结果打印出来。
另外,还可以使用Encryption类中的md5方法对字符串进行MD5加密。下面是一个示例代码:
```java
String md5 = Encryption.md5("123456");
String db_password = md5; // 数据库中的密码
String pwd = "123456"; // 用户输入的密码
if (Encryption.md5(pwd).equals(db_password)) {
System.out.println("登录成功");
} else {
System.out.println("密码错误");
}
```
这段代码将字符串"123456"进行MD5加密,并与数据库中的密码进行比较,判断用户输入的密码是否正确。
签名步骤:byte2HexStr (HMAC_SHA256(post-content +RequestURI, key), RequestURI 以”/” 开头,不包括域名;post-content 是指发送的完整 json 数据;key= AppSecret+Nonce+ timestamp, AppSecret 是和 vendorId 对应的密钥,签名的结果需要放到 name 为”parm-sign” 的 http header 中。 以下代码列出了 java 版本的签名实现: import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import java.nio.charset.Charset; import java.security.InvalidKeyException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import org.apache.commons.codec.binary.Hex; public class EncryptUtil { /** * * @param plainStr 需要加密的字符串 * @param key key=AppSecret+nonce+ timestamp * @return 加密后的字符串 */ public static String hmacsha256(String plainStr, String key) { SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(Charset.forName("UTF-8")), "HmacSHA256"); Mac mac=null; try { mac = Mac.getInstance(secretKey.getAlgorithm()); mac.init(secretKey); } catch (NoSuchAlgorithmException | InvalidKeyException e) { e.printStackTrace(); } byte digest[] = mac.doFinal(plainStr.getBytes(Charset.forName("UTF-8"))); return new StringBuilder().append(byte2HexStr(digest)).toString(); } public static String byte2HexStr(byte array[]) { return array != null ? new String(Hex.encodeHex(array)) : null; } } 请以PHP7.4版本实现签名
以下是PHP 7.4版本的实现,使用了相同的依赖库`apache/commons-codec`来进行十六进制编码。
```php
<?php
use function Sodium\crypto_generichash;
use function Sodium\crypto_pwhash_str;
use function Sodium\crypto_pwhash_str_verify;
require_once __DIR__ . '/vendor/autoload.php';
function hmacsha256($plainStr, $key)
{
$secretKey = new \SecretKeySpec(
utf8_encode($key),
'HmacSHA256'
);
$mac = hash_init('sha256', HASH_HMAC, $secretKey);
hash_update($mac, utf8_encode($plainStr));
$digest = hash_final($mac, true);
return byte2HexStr($digest);
}
function byte2HexStr($array)
{
return $array !== null ? \strval(Hex::encode($array)) : null;
}
function generate_password($password, $salt)
{
return crypto_pwhash_str($password, \SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE, \SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE);
}
function verify_password($hash, $password)
{
return crypto_pwhash_str_verify($hash, $password);
}
```
使用方法示例:
```php
$plainStr = '...'; // post-content RequestURI
$key = '...'; // AppSecret Nonce timestamp
$sign = hmacsha256($plainStr, $key);
$headers = [
'parm-sign: ' . $sign,
];
// 发送HTTP请求,携带上述 headers
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)