От Node JS кода шифрования до Java кода шифрования - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь найти аналогичный код java для кода ниже Node JS,

Node JS Код:

     var crypto = require('crypto');

     var mykey = crypto.createCipher('aes-128-ecb', 'XXXXXXXX00000000');
     var mystr = mykey.update('HelloWorld', 'utf8', 'hex')
     mystr += mykey.final('hex');

      console.log(mystr);

Результат шифрования: ce25d577457cf8113fa4d9eb16379529

Java Код:

 public static String toHex(String arg) throws UnsupportedEncodingException {
              return String.format("%x", new BigInteger(1, arg.getBytes("UTF-8")));
        }

 public static void main(String args[]) throws Exception{
 
    byte[] key = "XXXXXXXX".getBytes();
    String message = "HelloWorld";
        
    try {
        key = Arrays.copyOf(key, 16); 
        SecretKeySpec skeySpec = new SecretKeySpec(key, "AES");
        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
        cipher.init(Cipher.ENCRYPT_MODE, skeySpec);         
        byte encstr[] = cipher.update(message.getBytes());
        String encData = new String(encstr, "UTF-8");
        encData = toHex(encData);
        byte encstr2[] = cipher.doFinal();
        String encData2 = new String(encstr2);
        encData  = encData + toHex(encData2);           
        System.out.println(encData);
    } catch (NoSuchAlgorithmException nsae) {
        throw new Exception("Invalid Java Version");
    } catch (NoSuchPaddingException nse) {
        throw new Exception("Invalid Key");
    }
    
}

Результат шифрования: 056efbfbdefbfbfdebdebdebdbdbdbdbdbdbdbdbdbfdbfdbdbdbdbdbdbdbfdbdbdbdbfbdbdbfdbdbfdbdbdbdbdbdbdbdbdbfbdbfbfbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbfbfb

1 Ответ

0 голосов
/ 05 августа 2020

Принимая во внимание комментарии @Robert и @Topaco, я написал простую программу дешифрования, которая работает с заданным паролем «XXXXXXXX00000000».

Пожалуйста, имейте в виду, что эта программа использует UNSECURE AES Режим ECB и алгоритм UNSECURE MD5 ha sh. Программа НЕ обеспечивает надлежащей обработки исключений.

Результат:

ciphertext Java:   ce25d577457cf8113fa4d9eb16379529
ciphertext NodeJS: ce25d577457cf8113fa4d9eb16379529

Мой код:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...