千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > java后端字符串加密

java后端字符串加密

来源:千锋教育
发布人:zyh
时间: 2023-06-15 17:28:00 1686821280

  在Java后端中,可以使用多种加密算法对字符串进行加密。以下是几种常见的字符串加密技术:

  1. 哈希加密(Hash Encryption):哈希算法将输入数据映射为固定长度的哈希值。它是单向的,无法逆向还原原始数据。常用的哈希算法包括MD5、SHA-1、SHA-256等。在Java中,可以使用Java的MessageDigest类来进行哈希加密。  

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class HashEncryption {
public static String encryptString(String input) {
try {
MessageDigest digest = MessageDigest.getInstance("SHA-256");
byte[] hash = digest.digest(input.getBytes());
StringBuilder hexString = new StringBuilder();

for (byte b : hash) {
String hex = Integer.toHexString(0xff & b);
if (hex.length() == 1)
hexString.append('0');
hexString.append(hex);
}

return hexString.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}

return null;
}
}

  在上述示例中,使用SHA-256算法对输入字符串进行哈希加密,并将结果转换为十六进制字符串返回。

  2. 对称加密(Symmetric Encryption):对称加密使用相同的密钥进行加密和解密。常见的对称加密算法包括AES、DES、3DES等。在Java中,可以使用Java加密标准(Java Cryptography Architecture)中的Cipher类来进行对称加密。 

import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;

public class SymmetricEncryption {
public static String encryptString(String input, String key) {
try {
byte[] keyBytes = key.getBytes();
SecretKey secretKey = new SecretKeySpec(keyBytes, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encryptedBytes = cipher.doFinal(input.getBytes());
return Base64.getEncoder().encodeToString(encryptedBytes);
} catch (Exception e) {
e.printStackTrace();
}

return null;
}
}

  在上述示例中,使用AES算法进行对称加密,使用指定的密钥对输入字符串进行加密,并将加密结果转换为Base64编码的字符串返回。

  3. 非对称加密(Asymmetric Encryption):非对称加密使用一对密钥,包括公钥和私钥。公钥用于加密数据,私钥用于解密数据。常见的非对称加密算法包括RSA。在Java中,可以使用Java加密标准中的KeyPairGenerator类和Cipher类来进行非对称加密。  

import javax.crypto.Cipher;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.util.Base64;

public class AsymmetricEncryption {
public static String encryptString(String input) {
try {
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(2048);
KeyPair keyPair = keyPairGenerator.generateKeyPair();

Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, keyPair.getPublic());
byte[] encryptedBytes = cipher.doFinal(input.getBytes());

return Base64.getEncoder().encodeToString(encryptedBytes);
} catch (Exception e) {
e.printStackTrace();
}

return null;
}
}

  在上述示例中,使用RSA算法进行非对称加密,生成公钥和私钥对,并使用公钥对输入字符串进行加密,并将加密结果转换为Base64编码的字符串返回。

  这只是一些常见的字符串加密技术示例。在实际应用中,还需要考虑加密算法的选择、密钥管理、安全性等因素。另外,对于存储用户密码等敏感信息,通常建议使用加盐哈希(salted hash)来保护用户数据的安全性。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT