Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在cpp应用程序中保存密码_C++_Qt_Embedded Linux - Fatal编程技术网

C++ 在cpp应用程序中保存密码

C++ 在cpp应用程序中保存密码,c++,qt,embedded-linux,C++,Qt,Embedded Linux,在嵌入式linux上运行Qt应用程序,需要存储用户名、密码等敏感信息 我目前正在使用QStringLiteral存储此信息。这样做安全吗?当针对字符串二进制文件运行时,这些文件不可见。可用的选项/解决方案有哪些 SqlCipher可用,但它同样需要密码/密钥。任何建议您都不应该存储密码!无论是在Qt中还是在其他任何地方,都无法安全地做到这一点 我建议您生成一个随机数/salt,添加用户的密码,并对该数据运行安全哈希。例如MD5,甚至更好的SHA1(感谢Ted Lynmo)。存储结果。然后,您甚至

在嵌入式linux上运行
Qt
应用程序,需要存储用户名、密码等敏感信息

我目前正在使用
QStringLiteral
存储此信息。这样做安全吗?当针对
字符串
二进制文件运行时,这些文件不可见。可用的选项/解决方案有哪些


SqlCipher
可用,但它同样需要密码/密钥。任何建议

您都不应该存储密码!无论是在Qt中还是在其他任何地方,都无法安全地做到这一点

我建议您生成一个随机数/salt,添加用户的密码,并对该数据运行安全哈希。例如MD5,甚至更好的SHA1(感谢Ted Lynmo)。存储结果。然后,您甚至可以获取一个纯文本文件,因为很难从该数据恢复到原始密码

如果安全性对您来说不是那么大,您可以使用以下内容:

QString result = QString(QCryptographicHash::hash((password+salt),QCryptographicHash::Md5).toHex());

并将结果保存在QSettings中。

您不应该存储密码!无论是在Qt中还是在其他任何地方,都无法安全地做到这一点

我建议您生成一个随机数/salt,添加用户的密码,并对该数据运行安全哈希。例如MD5,甚至更好的SHA1(感谢Ted Lynmo)。存储结果。然后,您甚至可以获取一个纯文本文件,因为很难从该数据恢复到原始密码

如果安全性对您来说不是那么大,您可以使用以下内容:

QString result = QString(QCryptographicHash::hash((password+salt),QCryptographicHash::Md5).toHex());

并将结果保存在QSettings中。

如果有人可以读取您的二进制文件,他们可以计算出凭据。QStringLiteral可能只将其存储为UTF-16字符串。您的嵌入式平台是否有某种安全的enclave可供使用?如果有人可以读取您的二进制文件,他们可以计算出凭据。QStringLiteral可能只将其存储为UTF-16字符串。您的嵌入式平台是否有某种可以使用的安全enclave?OP的程序如何找回密码?我不再推荐MD5了。SHA1可能是因为它是一个嵌入式系统,否则是SH256,但是+1。它本身应该无法获取密码。没有人应该这样做。每当它要验证某人的密码时,它都会使用salt+提供的密码,然后比较两个散列结果。@manuell看一下Ted Lyngmo的评论:程序应该永远无法找回密码!没有人能做到这一点。@TedLyngmo你是对的,MD5不再那么安全,我也更喜欢SHA1。我将编辑我的答案。OP的程序如何找回密码?我不再推荐MD5了。SHA1可能是因为它是一个嵌入式系统,否则是SH256,但是+1。它本身应该无法获取密码。没有人应该这样做。每当它要验证某人的密码时,它都会使用salt+提供的密码,然后比较两个散列结果。@manuell看一下Ted Lyngmo的评论:程序应该永远无法找回密码!没有人能做到这一点。@TedLyngmo你是对的,MD5不再那么安全,我也更喜欢SHA1。我将编辑我的答案。