前言: 最近再项目当中使用的ApachShiro安全框架,对于权限和服务器资源的保护都有一个很好的管理.前期主要参考的文章有 项目中设计密码的加盐处理以及二次加密问题,跟着断点 一步步揭开Apach Shiro 的神秘面纱 数据库: 这里我们就用最简单的admin + 123456(加密前的密码) 来做测试 ShiroConfig 配置 /** * 凭证匹配器 告诉 * @return */ @Bean public HashedCredentialsMatcher hashedCredenti…
一:先从登录开始,直接看代码 @RequestMapping(value="dologin",method = {RequestMethod.GET, RequestMethod.POST},produces="text/html;charset=UTF-8") @ResponseBody public ResultJson systemUserdologin(XXX xxx,HttpServletRequest request,HttpServletRespons…
在django1.6中,默认的加密方式是pbkdf_sha256,具体算法不表,一直以来用django的自带用户验证都十分顺手,今天有需求,需要修改默认加密方式为md5,具体方法为: 在settings.py中加入 PASSWORD_HASHERS = ( 'myproject.hashers.MyMD5PasswordHasher', 'django.contrib.auth.hashers.MD5PasswordHasher', 'django.contrib.auth.hashers.PB…
以前为了防止前端密码安全问题,都是对密码进行md5(password + salt). 有些也会用别的加密方式,但还是会存在撞库,彩虹表等破解常规密码. 因此使用bcrypt加密是一个不错的选择,因为每次加密都会随机salt,每次加密结果都不一样,相对安全性更高些. 下面是一个示例代码,启动一个http服务器,浏览器输入http://127.0.0.1:8080,当填入密码与服务器一致时提示成功,不一致时报错. package main import ( "flag" "fm…
序列化模块 (非常非常重要) 序列化:将一个数据结构(list,dict....)转化成一个特殊的序列(特殊的字符串)的过程. # l1 = [1, 2, 3] # ret = str(l1) # print(ret,type(ret)) # print(eval(ret)) # 不让用 # 文件存取时,遇到的矛盾. # dic ={'username': '太白', 'password': 123} # dic = {1: {'username': '太白', 'password': 123,…
一,了解密码加密方式 密码具有私有性较强的特性,预测密码加密对个人隐私的保护有这非常大的作用.在用flask搭建网站时候若服务器有被攻破的风险,要是用户表中密码字段也被拿走,后果将不堪设想. 在密码保护中主要有密码加密和密码存储两种方式: 1,密码加密 主要是在密码本身加密过程中的处理策略. 明文转码加密:BASE64, 7BIT等.BASE64只是利用索引对应关系进行加密的方式,具有可逆性,在安全性上只比明文的安全性高一点点,这种方式并不能算做真正的加密. 对称算法加密:DES, RSA等.D…
有时候经常为如何设置一个安全.符合密码复杂度的密码而绞尽脑汁,说实话,这实在是一个体力活而且浪费时间,更重要的是设置密码的时候经常纠结.终于有一天实在忍不住了,于是学习.整理了一下如何使用Linux下命令来随机生成安全.符合密码复杂度的命令. 俗话说"工欲善其事必先利其器".如果能用挖土机的,你为什么要用锄头? 最近一直在反思自己:习惯性用原始.老旧的方式解决问题.而不擅长利用一些工具快捷.方便的解决问题. 1:mkpaswd命令 mkpasswd 是Linux自带的一个密码生成工具,…
在DRF项目的开发中,我们通过直接使用序列化器保存的用户信息时,用户的密码是被明文保存到数据库中. 代码实现: def create(self, validated_data): '''重写create方法实现,将密码加密后保存''' # 将密码加密后保存 user = User.objects.create_user(**validated_data) return user 我们只需要在序列化器中,重写create方法,并将保存数据的方法由原来的create方法修改成create_user方…
一.为什么要使用jasypt库? 目前springboot单体应用项目中,甚至没有使用外部配置中心的多服务的微服务架构的项目,开发/测试/生产环境中的密码往往是明文配置在yml或properties文件中, 这样就会导致密码泄露的安全隐患,被不法人员利用从而泄露公司数据信息 因此,jasypt库能通过密码加密减少明文密码泄露的风险: 二.什么是jasypt库? 参考:http://www.jasypt.org/index.html    Jasypt是一个Java库,允许开发人员以最小的努力将基…
有具体问题的可以参考之前的关于shiro的博文,关于shiro的博文均是一次工程的内容 密码的比对   通过AuthenticatingRealm的CredentialsMatcher方法 密码的加密,主要是在CredentialsMatcher的.... 密码的MD5加密 数据表中保存的密码,不应该是明文的,而且不能反推得到密码   1.如何把一个字符串加密成MD5 使用其提供的接口实现 2.替换当前的Realm的CredentialsMatcher属性,直接使用HashedCredentia…