Пароли по умолчанию Oracle 11 г? [закрытый]

Вам необходимо преобразовать строку ключа в экземпляр Java Key.

Кодируется ли ваша ключевая строка в Base64? Если это так, сделайте следующее:

@Value("${jwt.token.secret}")
private String secret;

private Key getSigningKey() {
  byte[] keyBytes = Decoders.BASE64.decode(this.secret);
  return Keys.hmacShaKeyFor(keyBytes);
}

JwtToken.builder().value(Jwts.builder()
                .setClaims(createClaims(account))
                .setSubject(subject.toString())
                .setIssuedAt(Date.from(createdDateTime))
                .setExpiration(Date.from(expirationDateTime))
                .signWith(getSigningKey())
                .compact()).expiration(expirationDateTime.toString()).build()

Если ваш ключ не закодирован в base64 (и, вероятно, так и должно быть, потому что, если вы, например, используете необработанный пароль, ваш ключ, вероятно, неверный или плохо формируется), вы можете сделать это с помощью:

private Key getSigningKey() {
  byte[] keyBytes = this.secret.getBytes(StandardCharsets.UTF_8);
  return Keys.hmacShaKeyFor(keyBytes);
}

Этот второй пример, как правило, не рекомендуется, поскольку, скорее всего, это означает, что у вас плохо сформированный ключ. Правильно сформированный, безопасный-случайный ключ не читается человеком, поэтому для хранения его в виде строки байты ключа обычно сначала кодируются с помощью base64.

Из документации https://github.com/jwtk/jjwt#jws-key-create :

Если вы хотите сгенерировать достаточно сильный SecretKey для использования с помощью алгоритмов JWT HMAC-SHA используйте вспомогательный метод Keys.secretKeyFor(SignatureAlgorithm):

SecretKey key = Keys.secretKeyFor(SignatureAlgorithm.HS256); //or HS384 or HS512

Под капотом JJWT использует KeyGenerator провайдера JCA для создания безопасного случайного ключа с правильной минимальной длиной для заданного алгоритм.

Если у вас есть существующий байтовый массив HMAC SHA SecretKey, вы можете использовать вспомогательный метод Keys.hmacShaKeyFor. Например:

byte[] keyBytes = getSigningKeyFromApplicationConfiguration();
SecretKey key = Keys.hmacShaKeyFor(keyBytes);
blockquote>

83
задан Dan Lew 11 April 2009 в 14:08
поделиться

2 ответа

Возможно подключение к базе данных без указания пароля. После этого вы можете сбросить пароли. Я предполагаю, что вы установили базу данных на свой компьютер; в противном случае вам сначала нужно будет подключиться к машине, на которой работает база данных.

  1. Убедитесь, что ваша учетная запись пользователя является членом группы dba . То, как вы это сделаете, зависит от того, на какой ОС вы работаете.

  2. Введите sqlplus / as sysdba в командной строке / оболочке / терминале в зависимости от ситуации. Это должно войти в базу данных как SYS.

  3. После входа в систему вы можете ввести

     изменить пользователя SYS, идентифицируемого как «новый пароль»;
    

    для сброса пароля SYS и аналогичным образом для SYSTEM.

(Примечание: я не пробовал ничего из этого в Oracle 12c; я предполагаю, что они не изменились после Oracle 11g.)

143
ответ дан Luke Woodward 24 November 2019 в 08:49
поделиться

Войдите в систему как идентификатор пользователя входа в систему oracle (где установлен oracle) ..

  1. Добавьте ORACLE_HOME = <Каталог установки Oracle> в переменную среды

  2. Откройте командную строку

  3. Измените каталог на % ORACLE_HOME% \ bin

  4. введите команду sqlplus / nolog

  5. SQL> connect / as sysdba

  6. SQL> изменить пользователя SYS, идентифицированного "newpassword";

Еще одна проверка во время установки Oracle и настройки помощника по настройке базы данных, если вы настраиваете какую-либо базу данных, то вы могли бы указать пароль и проверить тот же пароль для всех других учетных записей .. , затем попробуйте ввести пароль, который вы указали при настройке помощника по настройке базы данных.

Надеюсь, это сработает для вас ..

28
ответ дан 24 November 2019 в 08:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: