简体   繁体   English

正则表达式以匹配scrypt

[英]Regular Expression to match scrypt

I need to probe if a given String matches a scrypt key. 我需要检查给定的String是否与scrypt密钥匹配。

Some examples that need to match: 需要匹配的一些示例:

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

I use Javas String.matches function. 我使用Java的String.matches函数。

The description of the Keys is like this: Basic form: $s0$params$salt$key The values stand for: 键的描述如下:基本形式: $s0$params$salt$key这些值代表:

  • s0 - version 0 of the format with 128-bit salt and 256-bit derived key s0-具有128位盐和256位派生密钥的格式的版本0
  • params - 32-bit hex integer containing log2(N) (16 bits), r (8 bits), and p (8 bits) 参数-32位十六进制整数,包含log2(N)(16位),r(8位)和p(8位)
  • salt - base64-encoded salt 盐-base64编码的盐
  • key - base64-encoded derived key 密钥-base64编码的派生密钥

This is the best I could come up with. 这是我能想到的最好的。 Any better answer is greatly appreciated. 任何更好的答案将不胜感激。

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/+]+[=]*$

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM