首页 > 解决方案 > 如何在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(混合应用程序)的新手

标签: angularionic-frameworkencryptioncryptojscaesar-cipher

解决方案


我在 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 = 或 == 中即将到来。那么这个示例代码有什么问题,请建议我。


推荐阅读