Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

Ищу плагин Админ пароль

Discussion in 'Помощь' started by strelski12, Oct 21, 2015.

  1. Автор темы
    strelski12

    strelski12 Участник Пользователь

    Trophy Points:
    31
    Имя в Minecraft:
    zarg43
    Ищу плагин на админ пароль на сервер т.е когда администратор входит помимо /l пароль ему после этого требует допустим /apass пароль ( это к примеру )
    пожалуйста помогите .
     
  2. Хостинг MineCraft
    <
  3. FUZIK

    FUZIK Активный участник Пользователь

    Trophy Points:
    76
    Имя в Minecraft:
    FUZIK
    И для чего?
     
  4. DominatorRUS

    DominatorRUS Активный участник Пользователь

    Trophy Points:
    78
    Пароль к паролю, короче.. Для безопасности, я так понял.. Вот только толку от этого особо не будет. Тем не менее, держи.
     
  5. houp

    houp Активный участник Пользователь

    Trophy Points:
    61
    Имя в Minecraft:
    houp
    А он для игроков действет? Т.е. игрокам нужно вводить пароль?
     
  6. glavrak

    glavrak Активный участник Пользователь

    Trophy Points:
    76
    Имя в Minecraft:
    Mr_Krab
    Нафиг оно надо, если можно в authme врубить капчу или вовсе сделать кик за неверный пароль(капча лучше)
     
  7. alexandrage

    alexandrage Администратор

    Trophy Points:
    173
    Skype:
    alexandr0116
    Извращенцем посвящается.
    Code:
        public static String getQRBarcodeURL(String user, String host, String secret) {
            String format = "https://www.google.com/chart?chs=200x200&chld=M%%7C0&cht=qr&chl=otpauth://totp/%s@%s%%3Fsecret%%3D%s";
            return String.format(format, user, host, secret);
        }
     
        private static boolean check_code(String secret, long code, long t) throws Exception {
                  Base32 codec = new Base32();
                  byte[] decodedKey = codec.decode(secret);
                  int window = 1;
                  for (int i = -window; i <= window; ++i) {
                    long hash = verify_code(decodedKey, t + i);
    
                    if (hash == code) {
                      return true;
                    }
                  }
                  return false;
        }
     
        private static int verify_code(byte[] key, long t) throws Exception {
            byte[] data = new byte[8];
            long value = t;
            for (int i = 8; i-- > 0; value >>>= 8) {
                data[i] = (byte) value;
            }
            SecretKeySpec signKey = new SecretKeySpec(key, "HmacSHA1");
            Mac mac = Mac.getInstance("HmacSHA1");
            mac.init(signKey);
            byte[] hash = mac.doFinal(data);
            int offset = hash[20 - 1] & 0xF;
            long truncatedHash = 0;
            for (int i = 0; i < 4; ++i) {
                truncatedHash <<= 8;
                truncatedHash |= (hash[offset + i] & 0xFF);
            }
            truncatedHash &= 0x7FFFFFFF;
            truncatedHash %= 1000000;
            return (int) truncatedHash;
        }
    Code:
            //генерим приватокей
            byte[] buffer = new byte[10];
            new Random().nextBytes(buffer);
            Base32 codec = new Base32();
            byte[] secretKey = Arrays.copyOf(buffer, 10);
            byte[] bEncodedKey = codec.encode(secretKey);
            String encodedKey = new String(bEncodedKey);
            //даем ссылку лузверю
            getQRBarcodeURL("example", "localhost", encodedKey);
            //собстно сама проверка временного пароля
            int verifi = временный пароль;
            check_code(encodedKey, verifi, new Date().getTime() / 30000);
    int window = 1; настраивается время жизни пароля.
     

Share This Page