janusgraph - 存储使用bcrypt加密的密码

时间:2017-10-08 19:46:09

标签: node.js cassandra janusgraph

我使用janusgraph和cassandra作为存储后端。在保存密码之前,我使用名为bcrypt的节点包来加密密码。 janusgraph中该属性的数据类型是String。这是生成的密码哈希字符串 - #include "cuComplex.h" #include <stdio.h> #include <stdlib.h> #include <iostream> int main(void) { int n = 12000000; //12.000.000 int lse = n / 2; FILE *f, *f2; cuDoubleComplex *se, *se2; f = fopen("ref_PRI20.dat", "r"); f2 = fopen("surv_PRI20.dat", "r"); se = malloc(lse * sizeof(cuDoubleComplex)); se2 = malloc(lse * sizeof(cuDoubleComplex)); for (int a = 0; a < lse; a++) { if ( 1 != fscanf ( f, "%lf ,", &se[a * 2].x])) { fprintf ( stderr, "could not scan double\n"); break; } if ( 1 != fscanf ( f, "%lf ,", &se[a * 2 + 1].y)) { fprintf ( stderr, "could not scan double\n"); break; } if ( 1 != fscanf ( f2, "%lf ,", &se2[a * 2].x)) { fprintf ( stderr, "could not scan double\n"); break; } if ( 1 != fscanf ( f2, "%lf ,", &se2[a * 2 + 1].y)) { fprintf ( stderr, "could not scan double\n"); break; } } fclose(f); fclose(f2); free ( se); free ( se2); return 0; }

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

$2a$10$JSR6FClewTOHGxwpt/F0AePRzGnKvV2L9gj4TL1dA9fQERLWrig7u

如果您需要任何其他信息,请与我们联系。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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