angular - 如何在ionic4中使用crypto js进行加密/解密?
问题描述
我很麻烦,如何在ionic4中使用crypto js进行加密/解密?
我在java中编写了用于加密解密的代码
public static String encrypt(String str)
{
String encryptedString = str;
try {
byte[] utf8 = str.getBytes("UTF8");
byte[] enc = encryptor.doFinal(utf8);
encryptedString = Base64.encodeBase64URLSafeString(enc);
} catch (Exception e) {
e.printStackTrace();
}
return encryptedString;
}
用于解密
public static String decrypt(String str)
{
String decryptedString = "";
try {
byte[] dec = Base64.decodeBase64(str);
byte[] utf8 = decryptor.doFinal(dec);
decryptedString = new String(utf8, "UTF8");
} catch (Exception e) {
e.printStackTrace();
}
return decryptedString;
}
密钥生成
public static void genKeyPair(int i) {
try {
// generates DES key from string //
key = new SecretKeySpec(Skey.getBytes(), "DES");
// initialize the cipher with key //
encryptor = Cipher.getInstance("DES");
decryptor = Cipher.getInstance("DES");
encryptor.init(Cipher.ENCRYPT_MODE, key);
decryptor.init(Cipher.DECRYPT_MODE, key);
System.err.println(java.util.Base64.getEncoder().encodeToString(key.getEncoded()));
} catch (Exception e) {
e.printStackTrace();
}
}
我想在ionic4中写同样的东西,请帮助我。我是 ionic4(混合应用程序)的新手
解决方案
我在 angular (IONIC 4) 中找到了解决方案,但符号字符与 java 代码不同
let key="AND$VBOA";
var keyHex = CryptoJS.enc.Utf8.parse(key);
var message = CryptoJS.enc.Utf8.parse(message);
var encrypted = CryptoJS.DES.encrypt(message, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
console.log("Encrypted:="+encrypted.toString());
用于解密
var decrypted = CryptoJS.DES.decrypt({
ciphertext: CryptoJS.enc.Base64.parse(encrypted)
}, keyHex, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
console.log("Derypted:="+decrypted .toString());
在离子
Ecrypted: 6qPw1YkOopA=
Decrypted: Nitin
在 Java 中
Ecrypted: 6qPw1YkOopA
Decrypted: Nitin
在离子
Ecrypted: oOmH6uQ4R/Q=
Decrypted: Message
在 Java 中
Ecrypted: oOmH6uQ4R_Q
Decrypted: Message
在离子
Ecrypted: f+eTKAqlUwXnznPVyjTXWA==
Decrypted: engineer
在 Java 中
Ecrypted: f-eTKAqlUwXnznPVyjTXWA
Decrypted: engineer
在 Java "-" & IONIC "+" & in ionic "/" & java "_" 中测试了这么多示例,在 ionic extra = 或 == 中即将到来。那么这个示例代码有什么问题,请建议我。
推荐阅读
- java - 检查 requestBody 上的 Null 属性
- haskell - 这些线程是否永远被阻塞?
- reactjs - 使用 fetch 从数据库中获取记录但出现错误 400
- java - 有什么方法可以从 Android Studio 将数据写入 json 吗?
- c++ - 将可变参数函数参数转发到另一个可变参数函数
- python - Python:退避装饰没有捕捉到错误
- atom-editor - Atom-Editor 窗口窗格调整大小
- node.js - process.env 变量在节点/打字稿中给我未定义
- jquery - 为什么materialize.css中右侧sidenav的动画错误?
- button - Blazor:调用 StateHasChanged 时触发的按钮 OnClick 事件