java - 匹配 scrypt 的正则表达式

标签 java regex scrypt

我需要探测给定的字符串是否与加密 key 匹配。

一些需要匹配的例子:

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

我使用 Java String.matches 函数。

Key的描述是这样的: 基本形式:$s0$params$salt$key 这些值代表:

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

最佳答案

这是我能想到的最好的办法了。任何更好的答案将不胜感激。

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

关于java - 匹配 scrypt 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19292911/

相关文章:

java - 使用 json simple 修改嵌套 JSONObject

java - 如何在 java 中读取和写入 zip 文件?

regex - Express 4 中的正则表达式用于捕获文件扩展名 .gz 的静态资源的所有请求

javascript - 如何检查输入是否包含任何特殊字符

java - Jtable 选择行和列

java - 计算山谷

python - 如何获取文本并替换某些标签之间的文本

node.js - 为什么有时 npm install 在 mac 上不起作用?

android - 在 android 上加速 scrypt

php - 寻求帮助修复 php 脚本错误