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);
}

相关内容

热门资讯

黑科技脚本(wEpoke)辅助... 黑科技脚本(wEpoke)辅助多久会封号(黑科技)辅助多久会封号(原来真的是有挂);小薇(透视辅助)...
黑科技了解(wepoker)a... 黑科技了解(wepoker)ai辅助(黑科技)显示有做弊(好像存在有挂)1)辅助挂:进一步探索辅助透...
详细辅助(微扑克)ai算牌器(... 详细辅助(微扑克)ai算牌器(辅助挂)ai胜率(一贯真的有挂)1、这是跨平台的黑科技,在线的操作超级...
透视真的(Wpk)科技是真的吗... 透视真的(Wpk)科技是真的吗(黑科技)数据统计软件(一贯真的有挂)1)辅助挂:进一步探索辅助透视大...
黑科技脚本(WepOke)辅助... 黑科技脚本(WepOke)辅助挂(黑科技)辅助是真的(都是真的是有挂);致您一封信;亲爱玩家:《透明...
科普辅助(微扑克)的辅助工具苹... 科普辅助(微扑克)的辅助工具苹果(辅助挂)职业代打(果然存在有挂);是一款可以让一直输的玩家,快速成...
黑科技工具(wepOkE)黑科... 黑科技工具(wepOkE)黑科技靠谱吗(黑科技)ai代打逻辑(总是是真的有挂)1、许多玩家不知道辅助...
攻略辅助(微扑克)ai防封(辅... 攻略辅助(微扑克)ai防封(辅助挂)ai算牌器(竟然真的有挂)1、金币登录送、破产送、升级送、活动送...
透视教学(Wpk)透视辅助(黑... 透视教学(Wpk)透视辅助(黑科技)透视辅助工具的使用教程(竟然真的是有挂)1、这是跨平台的黑科技,...
黑科技私人局(WePoKer)... 黑科技私人局(WePoKer)软件能玩吗(黑科技)软件免费版(好像真的是有挂)1)辅助挂:进一步探索...