Как реализовать класс jCrypt java в Coldfusion? - PullRequest
0 голосов
/ 17 апреля 2020

Мне нужен класс jCrypt java в моем приложении ColdFusion для шифрования паролей. Вот код, который я пытаюсь использовать:

<cfscript>
    cfobject( name="JCrypt", type="java", action="create", class="JCrypt" );
    enc_password = trim(JCrypt.crypt("kL","myPassTest123"));
</cfscript>

После запуска этого кода произошла ошибка с этим сообщением:

Object Instantiation Exception.
Class not found: JCrypt

Сообщение указывает, что класс не найден. Мне интересно, как я могу реализовать jCrypt в моем приложении ColdFusion? Спасибо.

1 Ответ

4 голосов
/ 17 апреля 2020

Я бы не решился использовать что-то вроде JCrypt, которое практически не имеет следа на Inte rnet в качестве основы для шифрования пароля. На странице sourceforge есть ссылка на домашнюю страницу, которая больше не существует. Вы должны использовать BCrypt для шифрования пароля.

https://auth0.com/blog/hashing-in-action-understanding-bcrypt/

У Брэда Вуда отличная презентация о ColdFusion и BCrypt под названием "Pass the Salt" .

Вы можете скачать копию JBcrypt здесь:

https://www.mindrot.org/projects/jBCrypt/

Вот модуль ColdBox, который может дать вам некоторое представление о реализации CF :

https://github.com/coldbox-modules/cbox-bcrypt

В этом репо есть копия файла JBcrypt.jar и оболочка CF C, которую вы можете просто вставить в свое приложение.

https://github.com/coldbox-modules/cbox-bcrypt/blob/master/modules/bcrypt/models/BCrypt.cfc

Эта оболочка использует загрузчик Java для загрузки JAR, если вы не можете просто перетащить файл в путь lib сервера CF.

oBcrypt = new path.to.Bcrypt();
password = "Password";
hashed = oBcrypt.hashPassword(password);
check = oBcrypt.checkPassword(password, hashed);

Функция hashPassword() сохраняет соль и зашифрованный пароль в одной строке, которую вы сохраняете в базе данных.

...