Java-код шифрования, как добиться этого через nodejs? - PullRequest
0 голосов
/ 29 марта 2019

Java aes код шифрования, как этого добиться с помощью nodejs? Я не знаю, как nodejs должен реализовывать функцию hexStringToBytes, и aes decrypt

Исходный код: https://github.com/androider/mahuayingshi-java

    public static String decryptHex(String str, String str2) {
        str = "6cab6feb4e159bdbcb652ffd544a32db308bb2bd2b00f17c9a3d523c69159a0ed7589f602c30130ad2f0213226281767123cac47ca86c8f24511cec75a89b19227ecbae6b5f4ce564561098f2b12d2d4a6285ed146b0d2217924550c9e10256605077a3a4cff0be84e35627f004708f0";
        str2 = "10737929DtXZcHh9";
        String decrypt = null;
        try {
            decrypt = aesDecryptByBytes(hexStringToBytes(str), str2);
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(decrypt);
        return decrypt;
    }

    public static byte[] hexStringToBytes(String str) {
        int length = str.length() / 2;
        byte[] bArr = new byte[length];
        for (int i = 0; i < length; i++) {
            int i2 = i * 2;
            bArr[i] = (byte) (((byte) (hexStr.indexOf(str.charAt(i2)) << 4)) | ((byte) hexStr.indexOf(str.charAt(i2 + 1))));
        }
        return bArr;
    }

    private static String aesDecryptByBytes(byte[] bArr, String str) throws Exception {
        Cipher instance = Cipher.getInstance("AES/CBC/PKCS7Padding");
        byte[] bytes = str.getBytes();
        instance.init(2, new SecretKeySpec(bytes, "AES"), new IvParameterSpec(bytes));
        return new String(instance.doFinal(bArr));
    }
...