正则表达式匹配scrypt

时间:2013-10-10 10:08:21

标签: java regex scrypt

我需要探测给定的String是否与scrypt键匹配。

需要匹配的一些示例:

$s0$e0801$epIxT/h6HbbwHaehFnh/bw==$7H0vsXlY8UxxyW/BWx/9GuY7jEvGjT71GFd6O4SZND0=
$s0$100808$6McCjsQBpcCShLWq4nl3gg==$gs+Tz5DLGCDtYHGpIkP4i3EDpufBzsEGvoXzegkO5cU=

我使用Javas String.matches函数。

Keys的描述如下: 基本形式:$s0$params$salt$key 价值观代表:

  • s0 - 具有128位salt和256位派生密钥的格式的版本0
  • params - 包含log2(N)(16位),r(8位)和p(8位)的32位十六进制整数
  • salt - base64-encoded salt
  • key - base64编码的派生密钥

1 个答案:

答案 0 :(得分:2)

这是我能想到的最好的。非常感谢任何更好的答案。

Java:
String match = "^\\$s0\\$[0-9a-f]{5,6}\\$[a-zA-Z0-9/+]+[=]*\\$[a-zA-Z0-9/+]+[=]*$"

General:
^\$s0\$[0-9a-f]{5,6}\$[a-zA-Z0-9/+]+[=]*\$[a-zA-Z0-9/+]+[=]*$