У нас есть JSON файлы, которые находятся в файловой системе нашей внутренней сети и записаны Ruby и прочитаны Clojure (а также Ruby). Мы хотели бы зашифровать их, чтобы повысить их безопасность. Мы использовали AES 256 CB C внутри нашего Ruby проекта для других вещей, которые требуют симметричного c шифрования, поэтому мы хотели бы использовать это. Однако на этот раз шифрование необходимо будет расшифровать в приложении Clojure. Вывод шифрования (используя это в качестве руководства: OpenSSL :: Cipher ), представленный в виде строки Ruby, выглядит следующим образом: "a \ x96 \ xECLI \ xBC% \ xC4 @ {\ xBD \ x99% \ xA1 \ x84 \ x84 "и помещение этого в Clojure REPL приводит к куче" Синтаксическая ошибка ... Неподдерживаемый escape-символ: \ x "Я пытался сделать каждый" \ "a" \\ ", но затем использовал Библиотека Clojure "Buddy-Core" и: aes256-cb c -hma c -sha512, так как алгоритм шифрования приводит к:
Execution error (AssertionError) at buddy.core.crypto/eval1558$fn (crypto.clj:478).
Assert failed: (keylength? key 64)
Даже если ключ / iv были точной длины при использовании для шифрования строки в Ruby.
Подводя итог:
- Чтобы преобразовать строку Ruby в строку Clojure, правильно ли заменять все обратные косые черты двойными?
- Является ли: aes256-cb c -hma c -sha512 правильным алгоритмом для использования с Buddy-Core Clojure для расшифровки AES 256 CB C?
- Было бы лучше сделать это в Java внутри Clojure? (дополнительный вопрос: пожалуйста, посоветуйте преобразовать Ruby строки в строки Java / Clojure)