使用ASP.NET MVC 3散列密码

如何解决使用ASP.NET MVC 3散列密码

| 我现在正在尝试找出对ASP.NET MVC 3应用程序的密码进行哈希处理的最佳方法。据我所知,最好使用给定的密码和随机盐,然后将散列的密码和盐存储在一起。我的问题是,这是否会使随机盐毫无意义?我的意思是对密码进行哈希处理的原因是,如果有人进入您的数据库,他们将没有普通密码,并且加盐会使反向哈希以获取密码变得更加困难,但是如果我将哈希存储为密码,盐的含义是什么(我对哈希的知识非常有限,因此我可能会完全不了解自己的想法)。 我的第二个问题是,最好使用哪种哈希方法?我读到MD5(这是我一直使用的)很容易破解。我听说bcrypt / sha512很好。应该使用哪一个?我知道默认情况下,C#随sha512哈希一起提供。从我的看到,.NET库中不包含bcrypt,对于C#和bcrypt有没有好的库?     

解决方法

        无需将盐储存在其他位置,无论如何,您始终应该假定盐已被攻击者知道,并且其目的不是成为多余的密码! 在.NET中,此API将满足您的所有需求,它将在每次AES加密通过之前通过字节交换创建较大的加密随机盐以及HMACSHA512哈希和密钥扩展:) http://sourceforge.net/projects/pwdtknet/     ,        盐腌会增加抵抗彩虹/字典攻击的能力。今年发生的一些安全漏洞利用是因为Web应用程序的数据库包含不带盐的密码,并且它们都是使用md5完成的。因此,一次简单的彩虹攻击在几秒钟内为使用可怕密码的几个用户生成了密码。 为了使用MVC 3提供用户身份验证,您应该真正使用这种框架。如果您做的不正确,使用您自己的自定义身份验证提供程序可能会导致问题。 看一眼 http://msdn.microsoft.com/en-us/library/ff398049%28v=VS.98%29.aspx和http://msdn.microsoft.com/en-us/library/yh26yfzy.aspx。如果使用.NET成员资格系统,则无需执行任何低级数据库或密码管理。您只需将[Authorize]标记放在需要进行身份验证和完成的控制器动作周围即可。     ,        这是bcrypt的一个不错的C#实现: http://bcrypt.codeplex.com/     ,        SHA512是在.net中进行散列的一个不错的选择,如果您使用密码存储盐,则它毫无意义(但是\“解密\”仍需要更长的时间),但是您可以将盐存储在其他地方,因此数据库不足: 将盐储存在其他地方 始终使用相同的盐,例如在代码中对其进行硬编码或将其保存在应用设置中 根据其他信息为每个用户生成盐用户ID的MD5 通过某些系统设置(例如主机名或类似名称)为所有用户生成盐 更新: 正如Mike所说,我对上面的“毫无意义”的陈述是错误的。即使知道盐,它也会使Rainbow Table Attacks无效(或更不可能),因此即使将盐存储在哈希旁边也应始终使用盐(例如,Linux确实将用户密码存储在阴影中)文件以\“ $ id $ salt $ hashed \”的形式)!     ,        我一直使用以下方法来存储密码
public static string MD5Hash(string value)
{
    return Convert.ToBase64String(new MD5CryptoServiceProvider().ComputeHash(new UTF8Encoding().GetBytes(value)));
}
能否将这样的哈希值恢复为原始密码从来都不是问题。     ,        如果他们入侵您的安全数据库以窃取用户的哈希密码,那么那时他们不太可能真的需要密码。他们很可能已经可以访问数据库中的所有数据。如果MD5哈希值很简单,而数据却没有价值,那么它对于一般的网站来说可能不错。对于更可能有价值的数据,其他更困难的哈希方法会很好。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)> insert overwrite table dwd_trade_cart_add_inc > select data.id, > data.user_id, > data.course_id, > date_format(
错误1 hive (edu)> insert into huanhuan values(1,'haoge'); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive> show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 <configuration> <property> <name>yarn.nodemanager.res