org.mindrot.jbcrypt.BCrypt.pbkdf()方法的使用及代码示例

x33g5p2x  于2022-01-16 转载在 其他  
字(2.5k)|赞(0)|评价(0)|浏览(143)

本文整理了Java中org.mindrot.jbcrypt.BCrypt.pbkdf()方法的一些代码示例,展示了BCrypt.pbkdf()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。BCrypt.pbkdf()方法的具体详情如下:
包路径:org.mindrot.jbcrypt.BCrypt
类名称:BCrypt
方法名:pbkdf

BCrypt.pbkdf介绍

[英]Compatibility with new OpenBSD function.
[中]与新OpenBSD函数的兼容性。

代码示例

代码示例来源:origin: hierynomus/sshj

private void initializeCipher(String kdfName, byte[] kdfOptions, Cipher cipher) throws Buffer.BufferException {
  if (kdfName.equals(BCRYPT)) {
    PlainBuffer opts = new PlainBuffer(kdfOptions);
    byte[] passphrase = new byte[0];
    if (pwdf != null) {
      CharBuffer charBuffer = CharBuffer.wrap(pwdf.reqPassword(null));
      ByteBuffer byteBuffer = Charset.forName("UTF-8").encode(charBuffer);
      passphrase = Arrays.copyOfRange(byteBuffer.array(), byteBuffer.position(), byteBuffer.limit());
    }
    byte[] keyiv = new byte[48];
    new BCrypt().pbkdf(passphrase, opts.readBytes(), opts.readUInt32AsInt(), keyiv);
    byte[] key = Arrays.copyOfRange(keyiv, 0, 32);
    byte[] iv = Arrays.copyOfRange(keyiv, 32, 48);
    cipher.init(Cipher.Mode.Decrypt, key, iv);
  } else {
    throw new IllegalStateException("No support for KDF '" + kdfName + "'.");
  }
}

代码示例来源:origin: hierynomus/sshj

public void testBCryptPbkdfTestVectors() throws Exception {
    System.out.print("BCrypt.pbkdf w/ known vectors: ");
    for (BCryptPbkdfTV tv : bcrypt_pbkdf_test_vectors) {
      byte[] output = new byte[tv.out.length];
      new BCrypt().pbkdf(tv.pass, tv.salt, tv.rounds, output);
      assertEquals(Arrays.toString(tv.out), Arrays.toString(output));
      System.out.print(".");
    }
    System.out.println("");
  }
}

代码示例来源:origin: jenkinsci/trilead-ssh2

private static byte[] generateKayAndIvPbkdf2(byte[] password, byte[] salt, int rounds, int keyLength, int ivLength) {
  byte[] keyAndIV = new byte[keyLength + ivLength];
  new BCrypt().pbkdf(password, salt, rounds, keyAndIV);
  return keyAndIV;
}

代码示例来源:origin: com.hierynomus/sshj

private void initializeCipher(String kdfName, byte[] kdfOptions, Cipher cipher) throws Buffer.BufferException {
  if (kdfName.equals(BCRYPT)) {
    PlainBuffer opts = new PlainBuffer(kdfOptions);
    byte[] passphrase = new byte[0];
    if (pwdf != null) {
      CharBuffer charBuffer = CharBuffer.wrap(pwdf.reqPassword(null));
      ByteBuffer byteBuffer = Charset.forName("UTF-8").encode(charBuffer);
      passphrase = Arrays.copyOfRange(byteBuffer.array(), byteBuffer.position(), byteBuffer.limit());
    }
    byte[] keyiv = new byte[48];
    new BCrypt().pbkdf(passphrase, opts.readBytes(), opts.readUInt32AsInt(), keyiv);
    byte[] key = Arrays.copyOfRange(keyiv, 0, 32);
    byte[] iv = Arrays.copyOfRange(keyiv, 32, 48);
    cipher.init(Cipher.Mode.Decrypt, key, iv);
  } else {
    throw new IllegalStateException("No support for KDF '" + kdfName + "'.");
  }
}

相关文章