2016-06-29 3 views
0

В настоящее время я реализую WebDAV FileBrowser (Backend основан на FlySystem) на веб-странице. Все работает, но я не совсем уверен, как правильно хранить учетные данные пользователей в базе данных (цель состоит в том, что пользователю нужно только войти на портал (на основе OpenID Connect, который не поддерживается нашим решением WebDAV)).Безопасное хранение учетных данных WebDAV в базе данных

Хранение их в виде открытого текста, очевидно, не является решением и сохраняет их как хэш MD5, а использование Digest Authentication не работает из-за nonce.

Любые идеи?

ответ

0

Вы можете и должны хранить фактор a1md5 из спецификации digest. Это очень безопасная форма хэширования и совместима с Digest auth.

Для Java кода, который делает это увидеть DigestGenerator Milton webdav «s, где вы бы использовать метод encodePasswordInA1Format:

public String encodePasswordInA1Format(String username, String realm, String password) { 
    String a1 = username + ":" + realm + ":" + password; 
    String a1Md5 = DigestUtils.md5Hex(a1); 

    return a1Md5; 
} 

https://github.com/miltonio/milton2/blob/master/milton-server-ce/src/main/java/io/milton/http/http11/auth/DigestGenerator.java

+0

И только BTW, некоторые типы безопасности попахивающий о MD5, поскольку его восприимчивым к нападавших, обнаруживающих столкновения. Хотя это правда, это не слабость хеширования пароля MD5, потому что он не помогает злоумышленнику найти фактический пароль, если он получит доступ к хэшу. – brad