5

Я рассматриваю возможность использования приложений Chrome для интерфейса некоторых приложений, над которыми я работаю. (В стороне, если у кого-то есть мысли по этому поводу - поместите его в комментарии)Шифрование RSA и AES

Я бы использовал chrome.socket и хотел бы, чтобы соединения были защищены, поэтому потребуется шифрование RSA и AES, которое будет совместимо с таким количеством как возможно (б), (C#, Java, ...). Я имею в виду, что это разные режимы, ключевые длины, специфические для реализации детали ...

Теперь я немного поработал и нашел https://code.google.com/p/crypto-js/ для шифрования AES. Является ли это все еще принятой библиотекой, или есть другой?

... однако Не удалось найти библиотеку для RSA?

В примечании о безопасности я не предвижу, что это проблема, поскольку это расширение для Chrome, поэтому HTML/JavaScript не отправляется через Интернет, , но есть ли какие-либо другие последствия для безопасности, которые я пропустили?

+0

'chrome.socket' (нет chrome.sockets) не доступна в расширениях Chrome. – sowbug

+0

Исправлено. Благодарю. – Cheetah

+1

OK, но 'chrome.socket' по-прежнему недоступен в расширениях Chrome. – sowbug

ответ

3

Вы можете попробовать использовать это:

Stanford Javascript Crypto библиотека: http://crypto.stanford.edu/sjcl/

SJCL является безопасным. Он использует стандартный алгоритм AES на 128, 192 или 256 бит; хэш-функция SHA256; код аутентификации HMAC; усилитель паролей PBKDF2; и режимы аутентификации с использованием CCM и OCB.

Проверьте API здесь: http://bitwiseshiftleft.github.io/sjcl/doc/

Стэнфордского также имеет страницу, показывающую RSA (среди прочих) шифрования в Javascript: http://www-cs-students.stanford.edu/~tjw/jsbn/

RSA и ECC в JavaScript:

В jsbn библиотека - быстрая переносная реализация математики большого числа в чистом JavaScript, позволяющая криптографию открытого ключа и другие приложения на настольных и мобильных браузерах.

Они также заявляют, что на 100% совместимы с openssl и имеют инструкции о том, как вы можете это подтвердить.

Вы также можете попробовать CryptoJS: https://code.google.com/p/crypto-js/

CryptoJS растущая коллекция стандартных и безопасных алгоритмов шифрования, реализованных в JavaScript с использованием передовых методов и моделей. Они быстры, и они имеют последовательный и простой интерфейс.

+0

, но Google CryptoJS не поддерживает RSA (как частично вопрос), правильно? – humanityANDpeace

+0

@humanityANDpeace выглядит так, как будто предлагается код для этого: https://groups.google.com/forum/m/#!topic/crypto-js/xUdAHo7RXEg –

0

Похоже, вы можете использовать полную реализацию TLS здесь. Вы должны иметь возможность обернуть хром.Гнездо с TLS обертку с помощью горна (реализация JavaScript в TLS):

https://github.com/digitalbazaar/forge

0

я указываю некоторые из моих работ я сделал для университета, это, вероятно, полна ошибок и может быть сделано в лучшее путь. Это довольно быстро и хорошо работает с большими клавишами. Можно использовать RSA с ключами с n битами.

Проверьте тесты, если вам нужно понять, как это работает. Однако любая ошибка или улучшение будут оценены.

Обратите внимание, что вам, возможно, придется немного поискать, потому что есть не просто RSA.

https://github.com/llacroix/rsa-js

Смежные вопросы