Java数据加密

这里分享一个Spring Security提供的一个对数据加密的对象(可用于用户登录)
BCryptPasswordEncoderMD5区别

MD5:只要是相同的salt(盐)和原密码,加密后产生的密串都是一致的(非常容易出问题)
BCryptPasswordEncoder:相同的明文,每次生成不同的加密字符串都不一样

   @Test
    public void testEncipher() {
        BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
        //密码加密 底层封装盐值  $2a$10$rQDn0a0bdzhv.yAO9m4uDuTDgVIAPKi1rsOBnNV0Fswo3KXwF.7mu
        String encode = bCryptPasswordEncoder.encode("123456");
        System.err.println("加密encode:" + encode);
        //密码解密 盐值自动匹配
        boolean matches = bCryptPasswordEncoder.matches("123456", "$2a$10$IjG.dUKKNExF03cda4sjZ.wouFW1BrSxXEbnOSp7M3mxMA2y34vDm");

        System.err.println(encode + "==>" + matches);

    }

执行结果

执行结果

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 中可以使用加密技术来保护数据传输的安全性。下面是一个简单的示例: 1. 选择一个加密算法,例如 AES。 2. 生成一个密钥,可以使用 SecureRandom 类来生成一个随机密钥。 3. 使用密钥初始化加密器和解密器,可以使用 Cipher 类来实现。 4. 将明文数据加密并发送到接收方。 5. 接收方使用相同的密钥初始化解密器并将密文数据解密成明文数据。 下面是一个示例代码: ```java import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; public class Encryption { public static void main(String[] args) throws Exception { String plainText = "Hello, world!"; String secretKey = "mysecretkey"; // Generate a secret key KeyGenerator keyGenerator = KeyGenerator.getInstance("AES"); keyGenerator.init(128); SecretKey key = new SecretKeySpec(secretKey.getBytes(), "AES"); // Initialize the cipher Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, key); // Encrypt the data byte[] encryptedData = cipher.doFinal(plainText.getBytes()); // Send the encrypted data to the receiver // Receiver side // Initialize the cipher cipher.init(Cipher.DECRYPT_MODE, key); // Decrypt the data byte[] decryptedData = cipher.doFinal(encryptedData); // Print the decrypted data System.out.println(new String(decryptedData)); } } ``` 注意:在实际应用中,要使用更严格的加密算法和密钥管理方案来保护数据传输的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值