【问题标题】:janusgraph - store a password encrypted using bcryptjanusgraph - 存储使用 bcrypt 加密的密码
【发布时间】:2017-10-08 19:46:09
【问题描述】:

我正在使用 cassandra 作为存储后端的 janusgraph。我正在使用一个名为bcrypt 的节点包在保存密码之前对其进行加密。 janusgraph 中该属性的数据类型是字符串。这是生成的密码哈希字符串 - $2a$10$JSR6FClewTOHGxwpt/F0AePRzGnKvV2L9gj4TL1dA9fQERLWrig7u

这是我在尝试将其保存在数据库中时遇到的错误:

"message": "startup failed:\nScript88.groovy: 1: illegal string body character after dollar sign;\n   solution: either escape a literal dollar sign \"\\$5\" or bracket the value expression \"${5}\" @ line 1, column 228.\n   elf_reg_ind\",\"2\",\"self_reg_pw\",\"$2a$10$J\n                                 ^\n\n1 error\n",
  "Exception-Class": "org.codehaus.groovy.control.MultipleCompilationErrorsException"

如果您需要任何其他信息,请告诉我。

【问题讨论】:

    标签: node.js cassandra janusgraph


    【解决方案1】:

    您传递给服务器的查询是使用 Groovy 编译的,并且 Groovy 正在尝试将 $ 解析为标识符。您的哈希中有一个文字 $,因此您需要在每个 $ 前面放置一个 \ 来转义它。例如:

    { "gremlin":
        "g.V(1234).property('hash', '\$2a\$10\$JSR6FClewTOHGxwpt/F0AePRzGnKvV2L9gj4TL1dA9fQERLWrig7u')"
    }
    

    【讨论】:

      【解决方案2】:

      我自己不是一个 groovy 大师,但我意识到只有在使用双引号时才会尝试这种评估,所以我设法通过确保使用单引号来解决这个问题。 我正在使用 PHP,所以该过程是首先 json_encode 然后将双引号交换为单引号,以处理中间任何已经转义的引号(如果有的话)。

      【讨论】:

        猜你喜欢
        • 2018-08-25
        • 1970-01-01
        • 2016-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多