Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хочу создать прогу для вебмастеров, Создание htaccess и htpass 
:(
    Опции темы
Muerto
Дата 19.11.2010, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: нет
Всего: 4



ХОчу создать прогу для вебмастеров которая будет генерировать htaccess и htpass..

Главная проблема это как генерировать пароль...
Я реализововал ранее на php класс который это делает, он перед вами:

Помогите перевести на Java

Код

public function genPass($username,$password){
    $this->uname=$username;
    $tmp="";
    $salt = substr(str_shuffle("abcdefghijklmnopqrstuvwxyz0123456789"), 0, 8);
    $len = strlen($password);
    $text = $password.'$apr1$'.$salt;
    $bin = pack("H32", md5($password.$salt.$password));
    for($i = $len; $i > 0; $i -= 16) { $text .= substr($bin, 0, min(16, $i)); }
    for($i = $len; $i > 0; $i >>= 1) { $text .= ($i & 1) ? chr(0) : $password{0}; }
    $bin = pack("H32", md5($text));
    for($i = 0; $i < 1000; $i++) {
        $new = ($i & 1) ? $password : $bin;
        if ($i % 3) $new .= $salt;
        if ($i % 7) $new .= $password;
        $new .= ($i & 1) ? $bin : $password;
        $bin = pack("H32", md5($new));
    }
    for ($i = 0; $i < 5; $i++) {
        $k = $i + 6;
        $j = $i + 12;
        if ($j == 16) $j = 5;
        $tmp = $bin[$i].$bin[$k].$bin[$j].$tmp;
    }
    $tmp = chr(0).chr(0).$bin[11].$tmp;
    $tmp = strtr(strrev(substr(base64_encode($tmp), 2)),
    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
    "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
    $this->upass = "$"."apr1"."$".$salt."$".$tmp;
    }


Добавлено через 1 минуту и 3 секунды
Алгоритм называется MD5 APR


--------------------
user posted image
PM MAIL   Вверх
lowolf
Дата 19.11.2010, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 17.11.2008

Репутация: нет
Всего: нет



Возможно я чтото не понял, но тебе просто MD5 Hash нужен? Если да, то вот пример:

Код

public class ParsePasswordMD5 {

    public static final String ALGORITHM_MD5 = "MD5";

    public static final String ALGORITHM_SHA = "SHA";

    /**
     * Завершает вычисления хэш входной массив байтов.
     *
     * @param message   Массив байтов для хэш.
     * @param algorithm стандартное имя алгоритма дайджеста.
     * @return String представление в результате хэш-значение.
     * @throws NoSuchAlgorithmException Если алгоритм не доступны в среде вызывающего абонента.
     */
    public static String digest(byte[] message, String algorithm) throws NoSuchAlgorithmException {
        MessageDigest md = MessageDigest.getInstance(algorithm);
        md.reset();
        byte[] digest = md.digest(message);
        StringBuilder buffer = new StringBuilder();
        for (byte element : digest) {
            buffer.append(String.format("%02x", element));
        }
        return buffer.toString();
    }

    /**
     * Тоже самое, только на входе стринг.
     *
     * @param message   String for hash.
     * @param algorithm The standard name of the digest algorithm.
     * @return String representation of the resulting hash value.
     * @throws NoSuchAlgorithmException If the algorithm is not available in the caller's environment.
     */
    public static String digest(String message, String algorithm) throws NoSuchAlgorithmException {
        return digest(message.getBytes(), algorithm);
    }


    public static String encryptPassword(String password) {
        String hashedPassword;
        try {
            hashedPassword = digest(password, DigestUtil.ALGORITHM_MD5);
        } catch (NoSuchAlgorithmException ex) {
            System.out.println("ERROR: Unknown digest algorithm -> Save password as is.");
            hashedPassword = password;
        }
        return hashedPassword;
    }


    public static void main(String[] args) {
        String test = "123";
        System.out.println(encryptPassword(test));
    }

}


PM MAIL   Вверх
Muerto
Дата 19.11.2010, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: нет
Всего: 4



lowolf, Нет, не простой md5,
а именно md5-APR он описан выше на языке php

Вот так выглядит результат, 

логин admin пароль 12345 ( в примере оригинальный пароль не много другой но думаю суть ясна)


admin:$apr1$x0r7yfpz$JcPwuFf33ZZ3AtaIOvMIL2

Причем стоит помнить что пароль после md5-APR ВСЕГДА разный!!!

Это сообщение отредактировал(а) Muerto - 19.11.2010, 18:32


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.3885 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.