2016-08-10 1 views
-2

Я работаю над ChromeApp. В этом приложении нам нужно отобразить некоторые файлы HTML, JPEG, PDF. Но все эти файлы шифруются с использованием метода шифрования AES-128-CBC. Нам нужно, чтобы расшифровывал html, jpeg, png и pdf файлы с использованием метода AES-128-CBC с помощью JavaScript. Я попытался ниже код для расшифровки, но она не дает ожидаемого выхода:Расшифровка контента с использованием метода AES-128 cbc с помощью 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>

Может кто-нибудь мне помочь?

+0

Можете уточнить, в чем ваш вопрос? – EJoshuaS

+1

Вы можете начать с написания кода. Stack Overflow не является службой записи кода. Кроме того, если ключ доступен в вашем приложении Chrome, какую защиту он предоставляет для контента? Пожалуйста, прочитайте [Криптография Javascript считается вредной] (https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2011/august/javascript-cryptography-considered-harmful/) –

+0

@EJoshuaS, Вопрос: как получить HTML-контент из зашифрованных файлов с помощью JavaScript? Шифрование выполняется с использованием метода AES-128-CBC. Я добавил ключ и некоторый зашифрованный контент. У меня нет большой идеи о шифровании. Я получаю много ссылок в google, но не получаю никакой прямой ссылки. Мне нужна помощь в этой работе по расшифровке. – SumantMishra

ответ

1

Как уже отмечалось в комментариях, для шифрования/дешифрования в JavaScript обычно плохо.

С учетом сказанного, дешифрование этих типов файлов, в принципе, точно так же, как дешифрование других типов файлов.

С точки зрения самой криптографии основная идея алгоритмов с симметричными ключами, таких как AES, заключается в том, что элементы зашифрованы и дешифрованы с использованием одного и того же ключа (существуют отдельные методы для обеспечения того, чтобы обе стороны могли безопасно обменивать ключ, в общем случае полагаясь на public-key cryptography, см., например, Diffie-Hellman Key Exchange algorithm). Как правило, дешифрование более или менее является отменой процедуры, используемой для шифрования в первую очередь.

Безопасность этих алгоритмов заключается в секретности ключа и силе самого алгоритма, не в секретности алгоритма. Так, например, зная, что вы шифруете и дешифруете сообщения с использованием AES, определенно не достаточно информации для меня, чтобы иметь возможность восстановить содержимое сообщения (если я не могу как-то восстановить ваш ключ, поэтому важно чтобы сохранить его в безопасном режиме, безопасно использовать все блокировки ключей и периодически поворачивать ключи).

Существует множество учебников по криптографии и шифрованию в целом. Например, вот один из них:
http://www.tutorialspoint.com/cryptography/
Статьи в Википедии также очень хороши.