Criptazione della stringa in JavaScript e decrittografia in Java [chiuso]

2

Vorrei sapere se esiste una libreria per eseguire la crittografia in JavaScript e la decrittografia in Java. Ho già provato molte API, ma non sto ottenendo gli stessi valori in Java.
Voglio la crittografia a chiave pubblica-privata e quindi cerco di utilizzare RSA.
Alcuni che ho usato sono:

  1. www-cs-students.stanford.edu/~tjw/jsbn /
  2. ats.oka.nu/titaniumcore/js/crypto/readme.txt
  3. www.ohdave.com/rsa /

Poche cose che ho controllato, JavaScript spezza la stringa in piccoli blocchi e poi li crittografa che rende il ciphertext diverso in Java e JavaScript. Ho modificato il codice JavaScript per utilizzare la stringa nel suo complesso ma non ha funzionato.

Ho anche provato a impostare il set di caratteri della pagina HTML su utf-8 ma non ha funzionato. Ho avuto successo nel crittografare una stringa di caratteri singoli come "K" per essere crittografato e decrittografato correttamente, il che mi fa pensare che ci sia un problema nella crittografia della stringa in JavaScript dividendola in piccoli blocchi (che ho controllato, ma fallisce con la crittografia come intero).

La mia implementazione Java è:

BigInteger d = new BigInteger("1f3fac65c4ae222e3a3074dd4c38fbb72c0705c4bbac0385b867c12c25a44e01", 16);
BigInteger e = new BigInteger("65537");
BigInteger N = new BigInteger("b42e91fbca364cf2a125aec67ffbdab624fd401100c40ea05189ba34d1028b0d", 16);
String messageToEncrypt = "kishor";
byte [] messageByte = messageToEncrypt.getBytes();
BigInteger message = new BigInteger(messageByte);
//Encrypting and Decrypting messages
//Encrypt a message using N and e:
BigInteger ciphertext = message.modPow(e, N);
//Decrypt the message using N and d:
BigInteger plaintext = ciphertext.modPow(d, N);
byte[] plainTextByte = plaintext.toByteArray();
String decryptMessage = new String(plainTextByte);
/*System.out.println("p : " + p);
System.out.println("q : " + q);*/
System.out.println("N : " + N.toString(16)); 
System.out.println("e : " + e.toString(16));
System.out.println("d : " + d.toString(16));
/*System.out.println("PhiN : " + PhiN);*/
System.out.println("ciphertext : " + ciphertext.toString(16));
System.out.println("decryptMessage : " + decryptMessage);
}

Gentilmente fammi sapere se è possibile perché ho cercato molte domande (su Stack Overflow stesso) ma non riesco a trovare una soluzione. Sto cercando una libreria preconfigurata ben collaudata.

    
posta Kishor Sharma 31.07.2012 - 13:29
fonte

1 risposta

5

Il javascript è eseguito in un browser? Se è così, non provare a criptare nulla.

Si prega di fare riferimento al mio altra risposta per i dettagli . In sostanza, se stai facendo qualcosa con javascript, la connessione è a) già sicura o b) non sarà più sicura con qualsiasi cosa tu faccia all'interno della web app.

Si noti che parlo di hashing lì, ma si applica veramente a qualsiasi tipo di procedura in javascript.

    
risposta data 31.07.2012 - 14:14
fonte

Leggi altre domande sui tag