我不时听到"使用bcrypt在PHP中存储密码,bcrypt规则"的建议.
但是什么bcrypt呢?PHP没有提供任何此类功能,维基百科关于文件加密实用程序的唠叨和Web搜索只是揭示了不同语言的Blowfish的一些实现.现在Blowfish也可以通过PHP获得mcrypt,但是如何帮助存储密码?Blowfish是一种通用密码,它有两种工作方式.如果它可以加密,则可以解密.密码需要单向散列函数.
解释是什么?
Web应用程序的上下文有什么不同?我看到很多缩写"auth".它是代表身份验证还是身份验证?还是两者兼而有之?
我的理解是哈希码和校验和是类似的东西 - 为数据块计算的数值,它是相对独特的.
即,产生相同数字散列/校验和值的两个数据块的概率足够低,以至于出于应用目的可以忽略它.
那么我们是否有两个单词用于相同的事情,或者哈希码和校验和之间是否存在重要差异?
我正在尝试为Laravel创建一个哈希密码.现在有人告诉我使用Laravel哈希助手,但我似乎无法找到它,或者我正朝错误的方向看.
如何创建laravel哈希密码?在哪里?
编辑:我知道代码是什么,但我不知道在哪里以及如何使用它,所以它给了我回哈希密码.如果我得到哈希密码,那么我可以手动将其插入数据库
我已经阅读了我能找到的关于这个主题的所有内容,包括MSDN文章和SO帖子,但我仍然非常迷茫和困惑.
请回答以下内容(如果可能,请简要回答):
什么是SimpleMembership/SimpleMembershipProvider(WebMatrix.WebData)以及它们负责的是什么?
什么是WebSecurity(WebMatrix.WebData)?
什么是Membership(System.Web.Security)类?
为什么MVC4会创建一个UserProfile表和一个webpages_Membership表?它们是什么,有什么区别?MVC4创建的UserProfile类是什么?
什么是UsersContext类?
所有这些如何协同工作以进行用户身份验证?
这些问题然后导致下一个问题:
假设我有一个包含用户的现有数据库(ID,用户名,密码).我正在创建一个新的MVC4应用程序并使用表单身份验证.用户密码以加密形式(不是bcrypt)存储在数据库中.
我需要做些什么才能使它与MVC4一起使用?
我是否必须创建自定义MembershipProvider?
据我所知,WebSecurity是一个静态类(Module),它与MembershipProvider交互.MembershipProvider是一个解释特定函数如何工作的类,例如ValidateUser,CreateUser,ChangePassword.
为了解决我的问题,我假设我需要创建一个自定义MembershipProvider并告诉WebSecurity使用我的新MembershipProvider.
我已经在这个问题上获得了赏金,并打算将其授予安迪·布朗,以获得出色的答案.
forms-authentication asp.net-membership membership-provider asp.net-mvc-4 simplemembership
我有一些string,我想用使用C#的SHA-256哈希函数来哈希它.我想要这样的东西:
string hashString = sha256_hash("samplestring");
Run Code Online (Sandbox Code Playgroud)
框架中是否有内置功能可以执行此操作?
我阅读了有关md5哈希的维基百科文章,但我仍然无法理解哈希如何不能"重构"回到原始文本.
有人可以向对密码学知之甚少的人解释这是如何工作的吗?该功能的哪一部分使其成为单向的?
混淆,散列和加密有什么区别?
这是我的理解:

对于护照输入字段:
<input type="text" required="" tabindex="2" class="std_textbox" placeholder="Enter your account password." id="pass" name="pass">
Run Code Online (Sandbox Code Playgroud)
当<input type="password">更改为<input type="text">密码时显示.在已保存密码或从密码管理器生成的系统中,这可能存在风险.

可以在这里使用客户端加密吗?如何实施?
我正在JWT(JsonWebToken)计划的帮助下实现登录系统.基本上在用户登录/登录后,服务器签署JWT并将其传递给客户端.
然后,客户端返回每个请求的令牌,服务器在发回响应之前验证令牌.
这几乎是你所期望的,但我对这个过程的逻辑有一些问题.从我读过的所有数学文章来看,似乎RSA签名使用非对称密钥进行签名.正如其名称所示,公钥暴露给客户端并且私钥保留在服务器上,使用发送到客户端的公钥对JWT进行签名并使用服务器端验证它是有意义的.私钥.
然而,在每个示例和库中,我看到它似乎是另一种方式,任何想法为什么它是这样的?如果JWT使用私钥签名并与公共密钥进行验证,那么这一点是什么?
hash ×4
security ×3
cryptography ×2
passwords ×2
php ×2
bcrypt ×1
browser ×1
c# ×1
checksum ×1
client ×1
cryptographic-hash-function ×1
dom ×1
encryption ×1
javascript ×1
jwt ×1
laravel ×1
md5 ×1
obfuscation ×1
rsa ×1
sha256 ×1
string ×1