记住我功能,相信大家在一些网站已经用过,一些安全要求不高的都可以使用这个功能,方便快捷. spring security针对该功能有两种实现方式,一种是简单的使用加密来保证基于 cookie 的 token 的安全,另一种是通过数据库或其它持久化存储机制来保存生成的 token. 具体相关知识可以参考: http://wiki.jikexueyuan.com/project/spring-security/remember-me.html 下面是基于简单加密 token 的方法的实现,基于前篇的…
Cookie : 指望着为了辨别用户身份.进行会话跟踪而存储在用户本地的数据(通常经过加密),是由服务端生成,发送给客户端浏览器,浏览器会将Cookie以key/value保存,下一请求同一网站是就发送该Cookie给服务器 Django中写cookie: response.set_cookie(键,值,max_age=秒), 默认浏览器关闭过期 Django读cookie: request.COOKIE.get(键) Session:客户端在服务器上的身份标识,是一种无状态的持久机制,需要存储…
https://juejin.im/entry/56b30250df0eea0054375e1d 安装 pip install itsdangerous 使用 from itsdangerous import TimedJSONWebSignatureSerializer as Serializer # 导入itsdangerous里面的类 实现加密 from django.conf import settings # 创建序列化对象 # Serializer(私钥, 生命周期(秒)) # se…
目录 Token验证 传统的Token验证 JWT+HA256验证 回到顶部 Token验证 最近了解下基于 Token 的身份验证,跟大伙分享下.很多大型网站也都在用,比如 Facebook,Twitter,Google+,Github 等等,比起传统的身份验证方法,Token 扩展性更强,也更安全点,非常适合用在 Web 应用或者移动应用上.Token 的中文有人翻译成 “令牌”,我觉得挺好,意思就是,你拿着这个令牌,才能过一些关卡. 回到顶部 传统的Token验证 HTTP 是一种没有状态…
使用Requests库操作自己的Django站点,post登陆admin页面返回403,serverlog显示csrf token not set. csrf token是get登陆页面时服务器放在cookies中返回的. 所以完整的登陆应该是这样的: import requests s = requests.Session() s.get("http://serveraddr/admin") s.post(actionaddr,data={登陆表单数据}) 之后s就是一个已登陆的Se…
盐: 可以说盐是作用于注册,盐就是将用户输入的原始密码,加密后存进数据库,然后把盐(实际上是随机字符串)也存进数据库 Map<String, String> map = new HashMap<String, String>(); map.put("account", user_RegisterVo.getAccount()); map.put("password", user_RegisterVo.getPassword()); //new…
非对称密钥RSA算法加解密在C#和Java之间交互的问题,这两天看了很多其他人写的文章,碰到了几个问题,最终解决问题. 参考地址:http://xw-z1985.iteye.com/blog/1837376 需求目的:完成c#请求端RSA加密(签名)问题,客户端采用C#开发,服务器端采用Java开发.服务器端给客户端提供私钥,进行数据加密(签名),客户端加密(签名)后提数据提交给服务器,服务器用公钥对数据解密,进行验证. 解决过程碰到的问题: 1.JAVA 需要的 RSA私钥 格式和 C# 需要…
Django中使用ajax post向後臺傳送資料時403 Forbidden (CSRF token missing or incorrect.):的解決辦法 在Django中使用ajax post向後臺傳送資料時會出現403 Forbidden (CSRF token missing or incorrect.): 的報錯. 第一種解決方法: 先看一下ajax的使用方法: $.ajax({ url: '{% url '' %}', type: 'post', data: {}, dataTy…
/** * 对数据进行签名 * $data = 'If you are still new to things, we’ve provided a few walkthroughs to get you started.'; 签名数据 * $privatekeyFile = '/path/to/private.key'; 私钥 * $passphrase = ''; 密码 */ function sign($data, $privatekeyFile, $passphrase) { // 摘要及…
RSA加密算法是一种非对称加密算法.在公开密钥加密和电子商业中RSA被广泛使用.RSA是1977年由罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的.当时他们三人都在麻省理工学院工作.RSA就是他们三人姓氏开头字母拼在一起组成的. RSA是第一个比较完善的公开密钥算法,它既能用于加密,也能用于数字签名.这个算法经受住了多年深入的密码分析,虽然密码分析者既不能证明也不能否定RSA的安全性,但这恰恰说明该算法有…
本文摘录参考: 细说 CA 和证书(主要讲解 CA 的使用) 数字签名是什么?(简单理解原理) 深入浅出 HTTPS 工作原理(深入理解原理) HTTP 协议由于是明文传送,所以存在三大风险: 1.被窃听的风险:第三方可以截获并查看你的内容 2.被篡改的危险:第三方可以截获并修改你的内容 3.被冒充的风险:第三方可以伪装成通信方与你通信 HTTP 因为存在以上三大安全风险,所以才有了 HTTPS 的出现. HTTPS 涉及到了很多概念,比如 SSL/TSL,数字证书.数字签名.加密.认证.公钥和…
一.drf认证功能 二.token讲解 三.局部钩子源码分析 一.drf认证功能 1.认证简介: 只有认证通过的用户才能访问指定的url地址,比如:查询课程信息,需要登录之后才能查看,没有登录则不能查看.这时候需要用到认证组件 2.局部使用 models层 class User(models.Model): name = models.CharField(max_length=32) password = models.CharField(max_length=32) class UserTok…
最近在做一个项目,与一个支付渠道进行连接进行充值,为了安全,每个接口访问时,都要先登陆(调用登陆接口),拿到一个sessionKey,后续业务接口内容用它来进行3DES加密处理.而登陆需要用到RSA进行签名加密处理.大概就是这样一个业务流程. 一.密钥生成及管理: 1.交互双方各生成一对密钥:私钥和公钥: 2.自己保留私钥,把公钥给到对方: 3.用自己的私钥进行签名,对方的公钥进行验签: 4.用对方的公钥进行加密,自己的私钥进行解密: 二.需要用到的密钥证书: 1.对方公钥 2.本方公钥 3.本…
先上想法,想对数据库账号的密码进行一个加密,但是django文档中的加密方法set_password貌似是只针对他们默认的user模型 或者继承 AbstractBaseUser的模型有效 from django.contrib.auth.models import AbstractBaseUser from django.contrib.auth.models import User 其中set_password 就是对make_password进行一层封装  直接在用户注册保存时 user.…
一般在开发中,有的网站存在大量图片,首先图片的名称是不能重复的, 但是除了数据库可用的id以外我们可以用time模块中time.time()获取的时间来进行md5加密操作, 因为time模块所产生的时间的精度为亚秒级,是不会发生重复的情况 1.这里封装了md5的加密字符,导入setting.py的静态文件目录(路径拼接时需要)    from stu_entry.settings  import STATICFILES_DIRS    import time      import hashli…
https://www.cnblogs.com/Dominic-Ji/p/10886902.html cookie session token…
get 的时候没有问题,只有在post的时候出现出现这个错误 在方法中加入 @csrf_exempt…
PaysAPI直接查看接口文档:https://www.paysapi.com/docindex,比较简单 百度云视频点播服务接入: 1. 准备工作:百度云的示例:http://cyberplayer.bcelive.com/demo/new/index.html · 在百度云注册账号并且开通"音视频点播VOD"服务 · 进入后台管理系统 -> 安全认证 -> 获取AccessKey · 自定义转码模板(因为视频需要使用token加密再播放):  后端实现: ·token加…
对外提供API不用django rest framework(DRF)就是旁门左道吗? 基于Token的鉴权机制越来越多的用在了项目中,尤其是对于纯后端只对外提供API没有web页面的项目,例如我们通常所讲的前后端分离架构中的纯后端服务,只提供API给前端,前端通过API提供的数据对页面进行渲染展示或增加修改等,我们知道HTTP是一种无状态的协议,也就是说后端服务并不知道是谁发来的请求,那么如何校验请求的合法性呢?这就需要通过一些方式对请求进行鉴权了 先来看看传统的登录鉴权跟基于Token的鉴权…
基于Token的身份验证 在实现登录功能的时候,正常的B/S应用都会使用cookie+session的方式来做身份验证,后台直接向cookie中写数据,但是由于移动端的存在,移动端是没有cookie机制的,所以使用token可以实现移动端和客户端的token通信. 验证流程 整个基于Token的验证流程如下: 客户端使用用户名跟密码请求登录 服务器收到请求,去验证用户名和密码 验证成功后,服务端会签发一个Token,再把这个Token发送到客户端 客户端收到的Token以后可以把它存储起来,比如…
最近一段时间在学习WebApi,涉及到验证部分的一些知识觉得自己并不是太懂,所以来博客园看了几篇博文,发现一篇讲的特别好的,读了几遍茅塞顿开(都闪开,我要装逼了),刚开始读有些地方不理解,所以想了很久,因此对原文中省略的部分这里做一点个人的理解和补充,非常基础,知道的园友就不需要了,只是帮助初次学习的园友理解.原文传送门: http://www.cnblogs.com/MR-YY/p/5972380.html#!comments 本篇博文中的所有代码均来自上述链接,如果你觉得有帮助,请点击链接给…
1.默认自定义cookie 在使用扩展签名时,会根据settings 配置中的  SIGNING_BACKEND 来运行加密方法,默认使用 django.core.signing.TimestampSigner 类进行加密和解密 查看: set_signed_cookie 函数,我们打印  get_cookie_signer 的返回值,可以得知是:django.core.signing.TimestampSigner 对象. 查看 get_cookie_signer 函数,可以看出根据: set…
一.前提 首先是这个代码基于前后端分离的API,我们用了django的framework模块,帮助我们快速的编写restful规则的接口 前端token原理: 把(token=加密后的字符串,key=name)在登入后发到客户端,以后客户端再发请求,会携带过来服务端截取(token=加密后的字符串,key=name),我们再利用解密方法,将token和key进行解码,然后进行比对,成功就是登入过的认证,失败就是没有登入过的 还有一种方式,把{name:maple,id:1} 用我自己知道的加密方…
import org.apache.commons.codec.digest.DigestUtils; import java.io.UnsupportedEncodingException; import java.util.Map; import java.util.TreeMap; /** * @Author: rongrong * @Date: 2018/4/23 * @Description: */ public class MD5Utils { private static void…
LZ第一次给app写开放接口,把自己处理Token的实现记录下来,目的是如果以后遇到好的实现,能在此基础上改进.这一版写法非常粗糙,写出来就是让大家批评的,多多指教,感谢大家. 当初设计这块想达到的效果或者说考虑到的问题有这么几点: 无状态 就是不要像后台管理系统那样用session维护,因为在分布式系统中存在一个session共享的问题,但是很可惜没有做到,目前使用redis维护的token.后面是否能考虑下用jjwt做. 用户一旦登录,除非用户点击退出登录,将一直保持登录状态,这个简单,re…
在django1.6中,默认的加密方式是pbkdf_sha256,具体算法不表,一直以来用django的自带用户验证都十分顺手,今天有需求,需要修改默认加密方式为md5,具体方法为: 在settings.py中加入 PASSWORD_HASHERS = ( 'myproject.hashers.MyMD5PasswordHasher', 'django.contrib.auth.hashers.MD5PasswordHasher', 'django.contrib.auth.hashers.PB…
一.登录机制 粗略地分析, 登录机制主要分为登录验证.登录保持.登出三个部分.登录验证是指客户端提供用户名和密码,向服务器提出登录请求,服务器判断客户端是否可以登录并向客户端确认. 登录认保持是指客户端登录后, 服务器能够分辨出已登录的客户端,并为其持续提供登录权限的服务器.登出是指客户端主动退出登录状态.容易想到的方案是,客户端登录成功后, 服务器为其分配sessionId, 客户端随后每次请求资源时都带上sessionId. 1.1 登录验证 上述简易的登录验证策略存在明显的安全漏洞,需要优…
一:使用 GPG 对数据进行加密解密签名 基本的工具使用 1. GPG 是GNUPG 免费开源的gpg加密工具,和同pgp兼容,pgp收费. 2. 在mac上使用https://gpgtools.org/ 下载安装之后,打开GPG Keychain mac程序, 可以点击新建创建一份自己的公钥和私钥,并把公钥上传到开源服务器上,各服务器间数据同步: 创建完成之后!我们对一个文件加密,解密,签名验证签名就可以了! 选中文件,右键,服务里面即可看到支持的工具 3. 在 windows 上使用 htt…
openssl系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 1.1 背景知识 对称加密     :加密解密使用同一密钥,加解密速度快.随着人数增多,密钥数量急增n(n-1)/2. 非对称加密 :使用公私钥配对加解密,速度慢.公钥是从私钥中提取出来的,一般拿对方公钥加密来保证数据安全性,拿自己的私钥加密来证明数据来源的身份. 单向加密     :不算是加密,也常称为散列运算,用于生成独一无二的校验码(或称为指纹.特征码)来保证数据的完…
综述       XML加密和签名技术应用非常广泛. ASP.NET 使用XML加密对配置信息进行加密:InfoPath使用XML签名对表单进行签名:Web服务使用XML加密和签名对SOAP消息进行加密和签名:等等. W3C提供了相应的标准:http://www.w3.org/TR/xmldsig-core. 而X.509是一种非常通用的证书格式,符合ITU-T X.509国际标准.此标准已用于许多网络安全应用程序:IP 安全.SSL.电子商务协议(SET)等等. 利用X.509证书提供的公钥/…