2016-08-10 3 views
-2

Ich arbeite an einem ChromeApp. In dieser App müssen wir einige HTML-, JPEG- und PDF-Dateien rendern. Alle diese Dateien werden jedoch mit der Verschlüsselungsmethode AES-128-CBC verschlüsselt. Wir müssen entschlüsseln HTML, JPEG, Png und PDF-Dateien mit AES-128-CBC-Methode durch JavaScript. Ich habe unten Code versucht zu entschlüsseln, aber es gibt nicht erwartete Ausgabe:Inhalt Entschlüsselung mit AES-128 CBC-Methode durch JavaScript

var ciphertext = '®0Ž.v£=p?°–æ£ËkRdKÓ”‹1Š"°?¥yAÈ_fëo \t e=Î} ú¿¯¢GE$iV×î’ÚÐøUJ²4Fœ‰=ÄQËÐ*R<Ã(ÕÎFÔ©—+Ùøä[„”Æ29ÿªSÆsi¬ôÓÆ@qÒÞãýñ?!ÉnÑZp²/öÇ~P‘/¿¡ç%í~Ô43]ÃÎG¾‹,+tPÜAàÛLkæ«œ‘ɳf \t ç·ržúž´J›Ãá¥u®ÞFNœüÊöeL´Jîn<jí<ô¡ îÚY¥N6B•@¬˜krXyëÑtL<ú^ñ!±®¤–ÆœŸÌÉ£R¹ŒPþ*´¬/ú4´š7®´SóOgªr‹©;ï^îì­L5̩㎣¡ØÏÞµð’Òyí`d~Lq<I€©|Ñ%ÚSâå½n.»5|zFÔR_ÀèbeẎÇ&Ù3ìñjk¦®7'; 
 

 
function decryptPage() 
 
{ 
 

 
\t var originalKey = 'SuGpNMqP;md,(%F{'; 
 
\t //var originalKey = '537547704e4d71503b6d642c2825467b'; 
 

 
\t key = CryptoJS.enc.Hex.parse(originalKey); 
 

 
\t console.log(key); 
 

 
\t var iv = CryptoJS.enc.Hex.parse(ciphertext.slice(0, 32)); 
 
\t 
 
\t var message = CryptoJS.AES.decrypt({ 
 
\t  ciphertext: ciphertext 
 
\t }, key, { 
 
\t  iv: iv 
 
\t }); 
 
\t //console.log(hex2a(message.words)); 
 
\t console.log('message'); 
 
\t console.log(message.words); 
 
} 
 

 
decryptPage();
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script>

Kann mir jemand helfen?

+0

Können Sie klarstellen, was Ihre Frage ist? – EJoshuaS

+1

Sie können mit dem Schreiben von Code beginnen. Stack Overflow ist kein Code-Schreibdienst. Wenn der Schlüssel in Ihrer Chrome App verfügbar ist, welchen Schutz gibt es dann für den Inhalt? Bitte lesen Sie [JavaScript Cryptography Consumered Harmful] (https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2011/august/javascript-cryptography-considented-harmful/) –

+0

@EJoshuaS, Frage ist, wie HTML-Inhalt von den verschlüsselten Dateien mit JavaScript erhalten wird? Die Verschlüsselung erfolgt mit der AES-128-CBC-Methode. Ich habe Schlüssel und etwas verschlüsselten Inhalt hinzugefügt. Ich habe keine Ahnung von Verschlüsselung. Ich bekomme viele Hinweise in Google, bekomme aber keinen direkten Bezug. Ich brauche Hilfe bei dieser Entschlüsselungsarbeit. – SumantMishra

Antwort

1

Wie bereits in den Kommentaren erwähnt, ist es normalerweise eine schlechte Idee, in JavaScript zu verschlüsseln/entschlüsseln.

Mit dem gesagt, Entschlüsseln dieser Art von Dateien ist im Prinzip genau das gleiche wie die Entschlüsselung anderer Arten von Dateien. In Bezug auf die Kryptographie selbst besteht die Grundidee von symmetrischen Schlüsselalgorithmen wie AES darin, dass Elemente mit demselben Schlüssel verschlüsselt und entschlüsselt werden (es gibt separate Methoden, um sicherzustellen, dass beide Parteien den Schlüssel im Allgemeinen sicher austauschen können) verlassen auf public-key cryptography; sehen Sie zum Beispiel das Diffie-Hellman Key Exchange algorithm). Im Allgemeinen ist die Entschlüsselung mehr oder weniger eine Umkehrung der Prozedur, die zum Verschlüsseln verwendet wird.

Die Sicherheit dieser Algorithmen liegt in der Geheimhaltung des Schlüssels und der Stärke des Algorithmus selbst, nicht in der Geheimhaltung des Algorithmus. Wenn Sie zum Beispiel wissen, dass Sie Nachrichten mit AES verschlüsseln und entschlüsseln, ist das nicht genug Informationen für mich, um den Nachrichteninhalt wiederherstellen zu können (es sei denn, ich kann Ihren Schlüssel auch irgendwie wiederherstellen, weshalb es wichtig ist um es sicher zu speichern, führen Sie alle Schlüsselaustauschvorgänge sicher aus und drehen Sie Ihre Schlüssel in regelmäßigen Abständen).

Es gibt viele Tutorials zur Kryptographie und Verschlüsselung im Allgemeinen. Zum Beispiel, hier ist eine unter: http://www.tutorialspoint.com/cryptography/
Die Wikipedia-Artikel zu dem Thema sind auch ziemlich gut.

Verwandte Themen