我正在使用salt来加密用户的密码.我正在使用PHP,这里是用户注册期间发生的事情的快速示例.
这里是:
PHP代码:
// Gives me my random key. My salt generator.
$salt = uniqid(mt_rand());
// My password via what users inputs.
$userpwd;
// Then the encryption. I use a HMAC hash.
$encrypted = hmac_hash("sha256", $userpwd, $salt);
?>
Run Code Online (Sandbox Code Playgroud)
现在这一切都适合我的脚本.但我的问题是,如何验证用户登录?新的加密密码是随机的,因此我无法将登录表单中的密码与数据库中保存的加密密码进行比较.
我搜索过,无法找到解决方案.也许我没有足够的搜索,但有没有办法解密密码?如何使用我的脚本对用户进行身份验证?
这是一个广泛的问题,但我想听听你的意见.
我想到了三个选项:Delphi,C#和Java.
我对C#的经验不多,但我的经验仍然表明,与Delphi相比,C#不是RAD工具.它更像是Swing/Java.
我认为地球上任何东西都无法与Delphi相比,Delphi是一种简单易用的组件模型,用于构建可视化应用程序.
在构建可视化应用程序时,Java非常复杂.
顺便说一句,德尔福太老了,简直就是死工具(我的意见).但是使用Delphi,我可以在几分钟内构建这样一个应用程序,它将是可靠,快速和舒适的工作.
是否可以快速,轻松地构建类似Delphi的可视化应用程序?
应用程序必须显示带有html信息的屏幕,播放声音并对可以单击屏幕上显示的按钮(导航)的用户做出反应.
我一直在使用scala的lazy val习惯用法,我想在Java中实现类似的东西.我的主要问题是构造一些值我需要一些在对象构造时不知道的其他值,但我不希望以后能够改变它.原因是,我正在使用一个GUI库,它代表我实例化对象,并在创建我需要的所有东西时调用一个不同的方法,这就是我知道我需要的值.
以下是我尝试实现的属性:
*变量的不变性.
*在构造函数之外的其他一些方法中初始化.
我不认为这在Java中是可能的,因为只有final实现变量的不变性,final变量才能在构造函数之外初始化.
Java中最接近我想要达到的目标是什么?
我正在寻找一种算法,该算法可以输出正则表达式和上下文无关文法的交集是否为空。我知道这个问题是可判定的,但是,我找不到任何示例实现(在伪代码中)。
如果可能的话,有人可以在 .NET 中为我提供这样的算法,但这不是必须的。这个问题也被称为“规则交集”。谷歌搜索只给了我几何算法或关于它的理论。
编辑:
任何人。我真的坚持下去了,还没有找到任何东西。
我在尝试这个:
std::wstringstream wstrStream;
std::wifstream wifStream(str.c_str());
wifStream >> wstrStream;
Run Code Online (Sandbox Code Playgroud)
但我得到了这个编译错误:
error C2664: 'std::basic_istream<_Elem,_Traits>::_Myt &std::basic_istream<_Elem,_Traits>::operator >>
(std::basic_istream<_Elem,_Traits>::_Myt &(__cdecl *)
(std::basic_istream<_Elem,_Traits>::_Myt &))' : cannot convert parameter 1 from
'std::wstringstream' to 'std::basic_istream<_Elem,_Traits>::_Myt &(__cdecl *)
(std::basic_istream<_Elem,_Traits>::_Myt &)'
with
[
_Elem=wchar_t,
_Traits=std::char_traits<wchar_t>
]
and
[
_Elem=wchar_t,
_Traits=std::char_traits<wchar_t>
]
Run Code Online (Sandbox Code Playgroud)
我知道wchar_t没有实现operator >>.
我发现很少有文档和对std :: wifstream的引用.你会怎么用?
我正在尝试使用php在我的服务器上创建一个文件夹,当我将其设置为0777时它出现为755?
mkdir($create_path, 0777);
Run Code Online (Sandbox Code Playgroud)
谢谢
我需要使用boost :: disjoint_sets,但文档对我来说不清楚.有人可以解释每个模板参数的含义,也许可以给出一个用于创建disjoint_sets的小例子代码吗?
根据请求,我使用disjoint_sets来实现Tarjan的离线最小共同祖先算法,即 - 值类型应该是vertex_descriptor.
请解释 CMakeLists.txt 中这一行的目的是什么:
包括(InstallRequiredSystemLibraries)
我在 CMake 示例中看到这一行,但找不到好的解释,为什么我需要它。
我继承了一年前由某人开发的JSF项目,该项目不再适用于我的公司,代码很难理解.其中很多似乎是由IDE自动生成的,尤其是类的getter和setter.实际上,每个私有字段都有关联的getter和setter,即使它们未在项目中的任何位置引用.
我想在尝试理解项目之前摆脱所有这些无用的代码,但鉴于它是一个JSF项目,bean的属性可能在xhtml文件中引用,因此在使用"show references"命令时不会显示.
有没有办法知道哪些方法真的没用,以便安全地删除它们?
我使用eclipse但是每个允许这样做的工具都会让我感到很放松!
我经常读到VIEW的一个目的是安全性:允许一些用户访问底层表,而其他用户只能访问派生视图.考虑到这一点,我设计了几个视图,为外部用户提供受限数据集.
一切都很好,但实际上这不起作用.在我授予SELECT视图权限后,除非我同时授予SELECT所有基础对象,否则用户无法访问它.存储过程的相同故事.最终结果是非功能性的,因为我最终仍然允许对错误用户访问敏感数据,并且令人讨厌,因为很容易忘记一个对象并且用户回过头来抱怨该视图"不工作".
有没有办法SELECT在视图或存储过程上授予权限,而不必公开底层对象?