- Баллы
- 31
- Ник в Minecraft
- zarg43
Ищу плагин на админ пароль на сервер т.е когда администратор входит помимо /l пароль ему после этого требует допустим /apass пароль ( это к примеру )
пожалуйста помогите .
пожалуйста помогите .
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
И для чего?Ищу плагин на админ пароль на сервер т.е когда администратор входит помимо /l пароль ему после этого требует допустим /apass пароль ( это к примеру )
пожалуйста помогите .
А он для игроков действет? Т.е. игрокам нужно вводить пароль?Пароль к паролю, короче.. Для безопасности, я так понял.. Вот только толку от этого особо не будет. Тем не менее, держи.
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;
}
//генерим приватокей
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);