$符号导致程序崩溃

时间:2016-06-30 07:30:23

标签: c++

这是我的计划:

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <iostream>
int main()
{
    std::string hash = crypt("asd123","$2a$13$IP4FT4gf123I5bT6o4123123123123nbEXFqo.Oa123");
    std::cout << hash;
}

运行此操作会导致错误

  

在抛出'std :: logic_error'的实例后终止调用    what():basic_string :: _ M_construct null无效   中止(核心倾销)

但如果我从盐中删除$,它运行正常。

1 个答案:

答案 0 :(得分:4)

错误消息告诉您crypt返回给定参数的nullpointer。很有可能是它发出信号失败的方式。你需要检查一下。

您可以通过(1)找到该功能的文档,以及(2)阅读它来了解有关crypt的更多信息。

例如,您可以谷歌“unistd crypt”。

恰好,文档在一个漂亮的表中指定了你可以使用的有效字符集。