janusgraph - 存储使用 bcrypt 加密的密码
janusgraph - store a password encrypted using bcrypt
我正在使用带有 cassandra 的 janusgraph 作为存储后端。我正在使用名为 bcrypt 的节点包在保存密码之前对其进行加密。 janusgraph 中那个 属性 的数据类型是 String。这是生成的密码哈希字符串 - a$JSR6FClewTOHGxwpt/F0AePRzGnKvV2L9gj4TL1dA9fQERLWrig7u
这是我在尝试将其保存在数据库中时遇到的错误:
"message": "startup failed:\nScript88.groovy: 1: illegal string body character after dollar sign;\n solution: either escape a literal dollar sign \"\\" or bracket the value expression \"\" @ line 1, column 228.\n elf_reg_ind\",\"2\",\"self_reg_pw\",\"a$J\n ^\n\n1 error\n",
"Exception-Class": "org.codehaus.groovy.control.MultipleCompilationErrorsException"
如果您需要任何其他信息,请告诉我。
您传递给服务器的查询使用 Groovy 进行编译,并且 Groovy 正在尝试将 $
解析为标识符。你的散列中有一个文字 $
,所以你需要在每个 $
前面放一个 \
来转义它。例如:
{ "gremlin":
"g.V(1234).property('hash', '$2a$10$JSR6FClewTOHGxwpt/F0AePRzGnKvV2L9gj4TL1dA9fQERLWrig7u')"
}
我自己不是 groovy 大师,但我意识到只有在使用双引号时才尝试进行此评估,因此我通过确保使用单引号设法解决了这个问题。
我正在使用 PHP,所以过程是首先 json_encode 然后将双引号交换为单引号,处理中间任何已经转义的引号(如果有的话)。
我正在使用带有 cassandra 的 janusgraph 作为存储后端。我正在使用名为 bcrypt 的节点包在保存密码之前对其进行加密。 janusgraph 中那个 属性 的数据类型是 String。这是生成的密码哈希字符串 - a$JSR6FClewTOHGxwpt/F0AePRzGnKvV2L9gj4TL1dA9fQERLWrig7u
这是我在尝试将其保存在数据库中时遇到的错误:
"message": "startup failed:\nScript88.groovy: 1: illegal string body character after dollar sign;\n solution: either escape a literal dollar sign \"\\" or bracket the value expression \"\" @ line 1, column 228.\n elf_reg_ind\",\"2\",\"self_reg_pw\",\"a$J\n ^\n\n1 error\n",
"Exception-Class": "org.codehaus.groovy.control.MultipleCompilationErrorsException"
如果您需要任何其他信息,请告诉我。
您传递给服务器的查询使用 Groovy 进行编译,并且 Groovy 正在尝试将 $
解析为标识符。你的散列中有一个文字 $
,所以你需要在每个 $
前面放一个 \
来转义它。例如:
{ "gremlin":
"g.V(1234).property('hash', '$2a$10$JSR6FClewTOHGxwpt/F0AePRzGnKvV2L9gj4TL1dA9fQERLWrig7u')"
}
我自己不是 groovy 大师,但我意识到只有在使用双引号时才尝试进行此评估,因此我通过确保使用单引号设法解决了这个问题。 我正在使用 PHP,所以过程是首先 json_encode 然后将双引号交换为单引号,处理中间任何已经转义的引号(如果有的话)。