信息安全的基础是数学--->密码算法--->安全协议(ssl VPN)-->应用(证书 PKI)
密码学入门
密码编码学:研究加解密算法的学科
密码分析学:研究破译密码算法的学科

加解密分类
古典密码学
移位(置换),不改数据内容只是重新排序来隐藏信息,如 栅栏密码、列置换密码
替换(代替),明文数据被其他字母、数字、或其他符号替换,单表替换,仿射密码,多表替换,维吉尼亚密码

近现代密码学
对称密码算法(单钥密码系统),加密和解密的密钥是同一个,其安全性取决于密钥的保密性,常用加密算法AES,DES,3DES,RC4,SM4国密等

非对称密码算法(公钥密码算法),由加解密的密钥不一样,一般加密是公钥,解密使用私钥,其安全性问题取决于困难性问题,非对称常用密码算法,RSA(困难性在于大整数分解困难性问题),EIGamal(困难性在于离散对数问题),ECC(椭圆曲线离散对数问题),SM2国密(困难问题取决于椭圆曲线离散对数问题)等

单向散列函数(哈希函数),md4,md5,sha1,sm3国密,将不定长明文数据加密成定长的密文数据,并且解密不出明文,解密利用彩虹表

csrf依赖关系
1,web浏览器支持会话相关的功能,如cookie和http认证信息
2,攻击者知道合法的web应用url
3,应用程序进行会话管理所需要的信息,浏览器已经获得
4,直接进行http/https资源访问的html标签,如图像标签,img

csrf防御
1,验证Referer头域,验证请求发起的位置,但是Referer可以伪造不算太靠谱
2,验证tooken
3,验证用户原始数据,如原密码,邮箱,验证码等

2019-11-26:密码学基础知识,csrf防御的更多相关文章

  1. 2019.11.30 Mysql查询知识

    不等于:<> 判断为空的条件:null和空格(空字符串) 判断是否为null:xxxx  is  not  null    /    xxxx   is   null 判断null: SE ...

  2. IOS开发基础知识碎片-导航

    1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...

  3. Object&nbsp;c&nbsp;基础知识

    文件类型说明:.h 头文件,用于定义类.实例变量及类中的方法等定义信息(interface). .m 源文件,定义方法体,可实现objce-c和c方法(implementation). .mm c++ ...

  4. 《Python编程:从入门到实践》基础知识部分学习笔记整理

    简介 此笔记为<Python编程:从入门到实践>中前 11 章的基础知识部分的学习笔记,不包含后面的项目部分. 书籍评价 从系统学习 Python 的角度,不推荐此书,个人更推荐使用< ...

  5. 11月10日上午ajax基础知识、用ajax做登录页面、用ajax验证用户名是否可用、ajax动态调用数据库

    1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...

  6. iOS 阶段学习第11天笔记(OC基础知识)

    iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import  用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...

  7. 【UE4 C++ 基础知识】<11>资源的同步加载与异步加载

    同步加载 同步加载会造成进程阻塞. FObjectFinder / FClassFinder 在构造函数加载 ConstructorHelpers::FObjectFinder Constructor ...

  8. 想入门Web安全,这些基础知识都学会了吗?

    毕业季已经正式告一段落,这届毕业生都找到心仪的工作了吗? 正在实习期或者试用期的职场新人,是否在岗位上做的风生水起? 工作了一两年,从未升职加薪的菜鸟,还愿意继续原地踏步吗? 在校学生.IT从业者.毕 ...

  9. 红帽学习笔记[RHCSA] 第一课[Shell、基础知识]

    关于Shell Shell是什么 Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核中执行. bash shell是大多数Linux的缺省shell ...

随机推荐

  1. java编写基于netty的RPC框架

    一 简单概念 RPC:(Remote Procedure Call),远程调用过程,是通过网络调用远程计算机的进程中某个方法,从而获取到想要的数据,过程如同调用本地的方法一样. 阻塞IO:当阻塞I/O ...

  2. 判断浏览器是否支持指定CSS属性和指定值

    /** * @param attrName 属性名 * @param attrVal 属性值 * @returns {boolean} */ function isCssAttrSupported(a ...

  3. kaldi中CD-DNN-HMM网络参数更新公式手写推导

    在基于DNN-HMM的语音识别中,DNN的作用跟GMM是一样的,即它是取代GMM的,具体作用是算特征值对每个三音素状态的概率,算出来哪个最大这个特征值就对应哪个状态.只不过以前是用GMM算的,现在用D ...

  4. 大家都说好用的 Python 命令行库:click

    作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...

  5. abp(net core)+easyui+efcore实现仓储管理系统——EasyUI之货物管理七(二十五)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...

  6. NOIP模拟 5

    考试的时候相当浮躁,而且脑子并不工作 T1看了几眼,觉得没思路,先skip T2一打眼,满足条件的最大值,二分!(然后就死了,根本没想有没有单调性) T3找了半天规律,一开始自己手模的K3都过不了样例 ...

  7. docker基本操作教程

    镜像操作 获取镜像 从Docker Hub搜索镜像: docker search ubuntu 下载镜像: docker pull ubuntu:18.04 若下载镜像速度较慢,更改镜像源: Ubun ...

  8. python学习之【第七篇】:Python中的集合及其所具有的方法

    1.前言 python中的集合set与列表类似,它们最大的区别是集合内不允许出现重复元素,如果在定义时包含重复元素,会自动去重. 集合是无序的,集合中的元素必须是不可变类型.集合可以作为字典的key. ...

  9. 『题解』Codeforces656E Out of Controls

    更好的阅读体验 Portal Portal1: Codeforces Portal2: Luogu Description You are given a complete undirected gr ...

  10. python_day3(文件处理)

    1.文件处理 #Author:Elson Zeng #data = open("test").read() # f = open("test",'a',enco ...