Java RSA / ECB / OAEPWithSHA-256AndMGF1Padding equivalente in Node.js

0

La decrittografia dei dati verrà eseguita in JAVA utilizzando l'algoritmo RSA/ECB/OAEPWithSHA-256AndMGF1Padding . Quindi devo crittografare i dati con la chiave pubblica usando l'algoritmo equivalente a RSA/ECB/OAEPWithSHA-256AndMGF1Padding in node.js .

Ho provato con crypto.publicEncrypt(key, buffer) che utilizza crypto.constants.RSA_PKCS1_OAEP_PADDING che non è simile all'algoritmo di cui sopra. Quindi ho bisogno dell'algoritmo equivalente a "RSA / ECB / OAEPWithSHA-256AndMGF1Padding" o di come ottenere lo stesso in node.js

    
posta tim 18.12.2018 - 15:10
fonte

2 risposte

0

Ho finalmente trovato la risposta. Equivalente a "RSA / ECB / OAEPWithSHA-256AndMGF1Padding" può essere ottenuto tramite il modulo node-forge npm. link

    // encrypt data with a public key using RSAES-OAEP/SHA-256/MGF1-SHA-1
// compatible with Java's RSA/ECB/OAEPWithSHA-256AndMGF1Padding
var encrypted = publicKey.encrypt(bytes, 'RSA-OAEP', {
  md: forge.md.sha256.create(),
  mgf1: {
    md: forge.md.sha256.create()
  }
});

Grazie

    
risposta data 03.01.2019 - 15:21
fonte
-1

In primo luogo, non dovresti usare la cifratura in modalità "ECB", perché:

  1. ECB è una modalità di cifratura a blocchi, RSA non è un algoritmo basato su tale modalità operativa.
  2. Se si utilizza un algoritmo basato su tale modalità operativa (ad esempio AES), non si dovrebbe usare ECB, perché non ha IV (Initialization Vector), quindi non è sicuro e un analizzatore di crittografia potrebbe rompere il codice . È possibile utilizzare CBC, IV o GCM, se si desidera condividere informazioni sensibili su sistemi esterni e impedire Oracle Padding. Vi consiglio di visitare il seguente link:

MSC61- J. Non utilizzare algoritmi crittografici insicuri o deboli

Quindi, in questo caso, devi solo utilizzare OAEP per la crittografia RSA, perché è uno schema di riempimento e aiuta a prevenire Oracle Padding per gli algoritmi asimmetrici, quindi cambia il tuo codice per: RSA/None/OAEPWithSHA-256AndMGF1Padding . Forse potresti ottenere la compatibilità con Node.js. Inoltre, ti consiglio di visitare il sito web ufficiale:

Guida di riferimento JCA

Spero che questa informazione ti aiuti.

Buona fortuna.

    
risposta data 18.12.2018 - 17:39
fonte

Leggi altre domande sui tag