Это сработало, но если я хочу использовать другой простой текст, такой как «Hello World», то это не удалось.
Вы использовали noPadding
, и это проблема. Пример кратен 16 байтам, что не вызывает проблем, однако ваш следующий открытый текст - нет. Вы можете использовать noPadding
, если
- , ваше сообщение точно кратно размеру блока, хотя все еще не рекомендуется.
- вы хотите дополнить сообщение самостоятельно, вероятно, это вы Вы хотите протестировать новую схему заполнения, которую мы не видим в вашем коде.
Вы должны заполнять как
padding: CryptoJS.pad.Pkcs7
Как я прочитал этот Crypto JS ожидают использования ключа размера 256, если я передам пароль.
Crypto JS поддерживает AES-128, AES-192 и AES-256. В зависимости от размера ключа он выберет варианты ключа. Если вы используете пароль, он сгенерирует 256-битный размер. Это на 40% медленнее, чем AES-128, поскольку требует 14 раундов. Однако используйте надежный пароль, см. Ниже.
А что, если я хочу использовать такой пароль, как «my-key-001»?
Пароль с высокой энтропией важно, иначе злоумышленники могут быть успешными, проверяя пароли. Генерация ключей не может увеличить энтропию. Поэтому вам нужен хороший способ генерации паролей с высокой энтропией, например, использование diceware .
Как шифровать в AES с использованием Crypto JS с размером ключа 128?
Просто предоставьте 128-битный ключ.
Имеет ли AES-128 128-битную защиту
Любой блочный шифр, не только AES, уязвим для многоцелевых атак. В этом случае он не обеспечивает 128-битную безопасность. Поэтому вы должны использовать 192 или 256-битные ключи. Для более подробной информации смотрите этот вопрос AES-128 был полностью сломан?
режим: C .mode.ECB
Режим работы ECB не рекомендуется, он небезопасен и имеет утечку. Вам следует использовать современные режимы шифрования, такие как AES-GCM, которые обеспечивают вам не конфиденциальность, но также целостность и аутентификацию.
При использовании режима GCM убедитесь, что вы никогда не используете тот же IV / nonce снова под тем же ключом. AES-GCM использует режим CTR для шифрования и под тем же ключом, если IV / nonce повторяется, то возможно перетаскивание по кругу. Также может произойти утечка ключа аутентификации.