问题描述
我正在尝试使用Typescript加密字符串。我正在尝试复制用Java编写的加密方法
public String dataEncrypt(String data) {
String result = null;
String IVString = "IQ20lov4IZES1F01";
try {
SecretKeySpec skc;
skc = new SecretKeySpec(AppConstant.DATA_ENCRYPTION_KEY.getBytes(),"AES");
final byte[] IV = IVString.getBytes();
final IvParameterSpec ivSpec = new IvParameterSpec(IV);
Cipher cipher = Cipher.getInstance("AES/CTR/nopadding");
cipher.init(Cipher.ENCRYPT_MODE,skc,ivSpec);
byte[] stringBytes = data.getBytes(StandardCharsets.UTF_8);
byte[] encryptedBytes = cipher.doFinal(stringBytes);
result = Base64.encodetoString(encryptedBytes,Base64.DEFAULT);
} catch (Exception e1) {
lineNumber = getLineNumber(e1,getClass().getName());
logger.error("Error at " + lineNumber,e1);
e1.printstacktrace();
}
result = result.replace("\n","");
return result;
}
我用打字稿写的代码是
convertText(conversion:string) {
if (conversion=="encrypt") {
const key = CryptoJS.enc.Utf8.parse('srjBRQ07WNjls71fUkClW0tGd82EJr9p');
const iv = CryptoJS.enc.Utf8.parse('IQ20lov4IZES1F01');
var encrypted = CryptoJS.AES.encrypt('ACHUTHaraMAN',key,{
// instead of message try some string or “9876543210”
iv: iv,padding: CryptoJS.pad.nopadding,mode: CryptoJS.mode.CTR
});
// var encrypted_mob = salt.toString() + iv.toString() +
encrypted = encrypted.toString();
console.log("encrypted : ",encrypted);
// this.conversionEncryptOutput = CryptoJS.AES.encrypt(this.plainText.trim()).toString();
}
我从java方法获取e4jnVQAlKNDygSwq作为字符串的加密字符串,从打字稿获取B0md1KQkBk0jaCJu。我如何修改我的打字稿,使其得到与Java相同的结果
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)