Angular中的Crypto和Java中的BCrypt不匹配
创始人
2024-10-31 03:00:46
0

这是因为Angular中使用的Crypto库和Java中使用的BCrypt库加密算法不同造成的。解决方法是在Java中使用与Angular中Crypto库相同的加密算法,或在Angular中使用与Java中BCrypt库相同的加密算法。

以下是在Java中使用与Angular中Crypto库相同的加密算法的示例:

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;

public class CryptoUtil {

  public static String encrypt(String key, String initVector, String value) {
    try {
      IvParameterSpec iv = new IvParameterSpec(initVector.getBytes("UTF-8"));
      SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");

      Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
      cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);

      byte[] encrypted = cipher.doFinal(value.getBytes());
      return Base64.encodeBase64String(encrypted);
    } catch (Exception ex) {
      ex.printStackTrace();
    }

    return null;
  }

  public static String decrypt(String key, String initVector, String encrypted) {
    try {
      IvParameterSpec iv = new IvParameterSpec(initVector.getBytes("UTF-8"));
      SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");

      Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
      cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);

      byte[] original = cipher.doFinal(Base64.decodeBase64(encrypted));

      return new String(original);
    } catch (Exception ex) {
      ex.printStackTrace();
    }

    return null;
  }
}

在Angular中使用与Java中BCrypt库相同的加密算法的示例:

import * as bcrypt from 'bcryptjs';

const saltRounds = 10;

export function hashPassword(password: string): Promise {
  return bcrypt.hash(password, saltRounds);
}

export function comparePassword(password: string, hash: string): Promise {
  return bcrypt.compare(password, hash);
}

相关内容

热门资讯

透视辅助!aapoker辅助插... 透视辅助!aapoker辅助插件工具(透视)免费透视脚本(确实有挂)1、用户打开应用后不用登录就可以...
透视透视!拱趴大菠萝辅助神器(... 透视透视!拱趴大菠萝辅助神器(透视)微扑克教程(2024已更新)(哔哩哔哩)1、拱趴大菠萝辅助神器透...
透视辅助!aapoker能控制... 透视辅助!aapoker能控制牌吗(透视)真的假的(一直存在有挂)1、用户打开应用后不用登录就可以直...
透视ai!德州透视插件(透视)... 透视ai!德州透视插件(透视)2025新版教程(2026已更新)(哔哩哔哩);1、进入到德州透视插件...
透视ai!aapoker能控制... 透视ai!aapoker能控制牌吗(透视)透视插件(真是是有挂);1、超多福利:超高返利,海量正版游...
透视ai代打!哈糖大菠萝辅助器... 透视ai代打!哈糖大菠萝辅助器(透视)新版2025教程(2026已更新)(哔哩哔哩)1、进入游戏-大...
透视数据!aapoker辅助软... 透视数据!aapoker辅助软件合法吗(透视)透视脚本入口(都是有挂)aapoker辅助软件合法吗是...
透视新版!pokemmo辅助器... 透视新版!pokemmo辅助器手机版下载(透视)揭秘攻略(2021已更新)(哔哩哔哩);1、poke...
透视神器!aapoker辅助软... 透视神器!aapoker辅助软件合法吗(透视)万能辅助器(果然是有挂);1、aapoker辅助软件合...
透视肯定!来玩app破解版(透... 透视肯定!来玩app破解版(透视)揭秘教程(2026已更新)(哔哩哔哩)1、游戏颠覆性的策略玩法,独...