对称密钥

java AES加密解密

别来无恙 提交于 2020-01-04 03:38:54
近些年DES使用越来越少,原因就在于其使用56位密钥,比较容易被破解,近些年来逐渐被AES替代,AES已经变成目前对称加密中最流行算法之一;AES可以使用128、192、和256位密钥,并且用128位分组加密和解密数据。本文就简单介绍如何通过JAVA实现AES加密。 因为在做接口 webservice的时候接受穿过的数据 是xml 加密为二进制 byte[] 下面直接看代码 : import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.KeyGenerator; import javax.crypto.NoSuchPaddingException; import javax.crypto.SecretKey; import javax

现代密码学复习要点总结(谷利泽)

只愿长相守 提交于 2020-01-03 05:32:16
文章目录 第一章 密码学概论 信息安全(密码编码学:认证体制+保密体制) 1.信息安全基础概念 2.深刻理解现代密码学在网络信息安全保障中的作用 3.网络信息系统中的安全服务与密码学算法的关系 第二章 密码学基础 1.密码学的相关概念 2密码学加密系统的五元组 第三章 古典密码体制 1.理解“代替”和“置换” 2.能够对使用古典密码加密的密文进行破译 第四章 分组密码 1.理解分组密码算法如何实现“扩散”和“混乱”的 2.S-P网络、雪崩效应 DES加密流程图 3.DES(分组长度、迭代轮数、密钥长度、S盒、P盒、加密思想) 4.3DES、AES主要特点 5.AES的字节代换和列混淆 AES流程图 第六章 1.安全的哈希函数的性质和应用 2.MD5和SHA1的主要特点 3. 消息认证的目的和方法 4.认证函数的三种实现方法 5.能够对一个认证协议进行分析 第八章 数字签名 1.数字签名要解决的问题 2.数字签名的安全模型、性质 3.RSA签名算法以及存在的安全问题 4.ElGamal签名算法以及主要的问题 5.特殊的签名算法以及适应的应用场景 第九章 密码协议 1.各种协议的特点,解决的问题 第十章 密钥管理 1.几类密钥的作用 2.密钥的生成 3.密钥的存储 4.密钥的分发 5.集中式密钥分发 6.分布式密钥分发(DeffieHellman密钥协商) 7.为什么要进行公钥认证

密码学概论

无人久伴 提交于 2020-01-01 15:16:45
1 基本概念(*) 密码学又分为密码编码学(Cryptography)和密码分析学(Cryptanalysis)。 在密码学中,一个密码体制或密码系统是指由明文、密文、密钥、加密算法和解密算法所组成的五元组。 明文是指未经过任何变换处理的原始消息,通常用m(message)或p( plaintext)表示。所有可能的明文有限集组成明文空间,通常用M或P表示。 密文是指明文加密后的消息,通常用c(ciphertext)表示。所有可能的密文有限集组成密文空间.通常用C表示。 密钥是指进行加密或解密操作所需的秘密/公开参数或关键信息,通常用k(key)表示。所有可能的密钥有限集组成密钥空间,通常用K表示。 加密算法是指在密钥的作用下将明文消息从明文空间映射到密文空间的一种变换方法,该变换过程称为加密,通常用字母E表示,即c= EK(m)。 解密算法是指在密钥的作用下将密文消息从密文空间映射到明文空间的一种变换方法,该变换过程称为解密,通常用字母D表示,即m= DK(c)。 2 密码分析学 (1)唯密文攻击(Ciphertext only Attack) (2)已知明文攻击(Known Plaintext Attack) (3)选择明文攻击(Chosen Plaintext Attack) (4)选择密文攻击(Chosen Ciphertext Attack) (5)选择文本攻击

Coursera: Internet History, Technology, and Security

北城余情 提交于 2020-01-01 14:31:51
课程网址:https://www.coursera.org/learn/internet-history 学习笔记: Week 1: History - Dawn of Early Computing (1940 - 1960) War Time Computing and Conmmunication — High Stakes Research in Computing, and Communication 二战刺激了政府对各种科技的研究投入,由此促进了计算机技术的发展,其中就包括电子计算机的诞生。 为了解密德国的无线电情报,英国布莱切利园( Bletchley Park )内以艾伦·图灵( Alan Turing )为代表的跨学科( cross-disciplinary )团队为电子通信和计算( electronic communication and computation )技术打下了基础。 — Alan Turing and Bletchley Park 在二战期间,布莱切利园是英国政府进行密码解读的主要场所,各行各业的上万名人员在此处工作,轴心国的密码与密码文件,都会送到那里进行解码。布莱切利园是最早的跨学科合作部门。 Bombe 是一台英国机械计算机,致敬波兰密码破译机 Bomba ,对破译德国 Enigma 密码机起到了重要作用,一个 Bombe 可以模拟36个

http协议--笔记

让人想犯罪 __ 提交于 2019-12-30 14:59:25
HTTP协议的缺点: 1.通信使用明文(不加密),内容可能会被窃听 2.不验证通信方的身份,因此有可能遭遇伪装 3.无法证明报文的完整性,所以有可能已遭篡改 防止窃听保护信息的几种对策:加密技术 通信的加密 HTTP和SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全层传输协议)的组合使用,加密HTTP的通信内容。与SSL组合使用的HTTP被称为HTTPS(HTTP Secure,超文本传输安全协议)或HTTP over SSL. HTTP+加密+认证+完整性保护=HTTPS 我们把添加了加密及认证机制的HTTP称为HTTPS(HTTP Secure) HTTPS是身披SSL外壳的HTTP HTTPS不是应用层的一种新协议。只是HTTP通信接口部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)协议代替而已 通常,HTTP直接和TCP通信。当使用SSL时,则演变成先和SSL通信,再由SSL和TCP通信了。 SSL是独立于HTTP的协议,所以不光是HTTP协议,其他运行在应用层的SMTP和Telnet等协议均可配合SSL协议使用。SSL是当今世界上应用最为广泛的网络安全技术 近代的加密方法中加密算法是公开的,而密钥却是保密的。加密和解密都会用到密钥

SSL与TLS的区别

时光毁灭记忆、已成空白 提交于 2019-12-29 07:36:00
SSL(Secure Socket Layer 安全套接层)是基于HTTPS下的一个协议 加密 层,最初是由网景公司(Netscape)研发,后被IETF(The Internet Engineering Task Force - 互联网工程任务组)标准化后写入(RFCRequest For Comments 请求注释),RFC里包含了很多互联网技术的规范! 起初是因为HTTP在传输数据时使用的是明文(虽然说POST提交的数据时放在报体里看不到的,但是还是可以通过抓包工具窃取到)是不安全的,为了解决这一隐患网景公司推出了SSL安全套接字协议层,SSL是基于HTTP之下TCP之上的一个协议层,是基于HTTP标准并对TCP传输数据时进行加密,所以HPPTS是HTTP+SSL/TCP的简称。 由于HTTPS的推出受到了很多人的欢迎,在SSL更新到3.0时,IETF对SSL3.0进行了标准化,并添加了少数机制(但是几乎和SSL3.0无差异),标准化后的IETF更名为TLS1.0(Transport Layer Security 安全传输层协议),可以说TLS就是SSL的新版本3.1,并同时发布“RFC2246-TLS加密协议详解”,如果想更深层次的了解TLS的工作原理可以去RFC的官方网站:www.rfc-editor.org,搜索RFC2246即可找到RFC文档! SSL连接过程

C#加密解密总结

霸气de小男生 提交于 2019-12-27 21:41:29
ASCIIEncoding.ASCII.GetBytes(sKey); 这里的sKey必须是8位英文字母。 // 须添加对System.Web的引用 using System.Web.Security; ... /// <summary> /// SHA1加密字符串 /// </summary> /// <param name="source"> 源字符串 </param> /// <returns> 加密后的字符串 </returns> public string SHA1( string source) { return FormsAuthentication.HashPasswordForStoringInConfigFile(source, " SHA1 " ); } /// <summary> /// MD5加密字符串 /// </summary> /// <param name="source"> 源字符串 </param> /// <returns> 加密后的字符串 </returns> public string MD5( string source) { return FormsAuthentication.HashPasswordForStoringInConfigFile(source, " MD5 " );; } 方法二(可逆加密解密): using

计算机网络安全知识点点点通

若如初见. 提交于 2019-12-27 01:51:45
(一)网络操作系统安全 网络操作系统安全是整个网络系统安全的基础。操作系统安全机制主要包括 访问控制 和 隔离控制 。 访问控制系统一般包括主体、客体和安全访问政策 访问控制类型: 自主访问控制 强制访问控制 访问控制措施: 入网访问控制 权限访问控制 属性访问控制 身份验证 网络端口和结点的安全控制 (二)网络实体安全 计算机网络实体是网络系统的核心,既是对数据进行加工处理的中心,也是信息传输的控制中心 网络设备的冗余 网络服务器系统冗余: 双机热备份:设置两台服务器(一个主服务器,一个备份服务器) 存储备份冗余 磁盘镜像 RAID 电源冗余:采用双电源系统(即服务器电源冗余) 网卡冗余 核心交换机冗余 供电系统冗余:使用UPS作为备份电源 链接冗余 网络边界设置冗余 ACL(路由器访问控制列表) 基于包过滤的流控制技术,主要作用一方面保护网络资源,阻止非法用户对资源的访问,另一方面限制特定用户所能具备的访问权限 类型: 标准ACL:序列号1-99 扩展ACL:序列号100-199 VRRP(虚拟路由器冗余协议) 选择性协议,可把一个虚拟路由器的责任动态分配到局域网上VRRP路由器 交换机端口汇聚 端口聚合也称以太通道,主要用于交换机之间的连接。就是将多个物理端口合并成一个逻辑端口 Internet上的应用服务器 HDCP服务器 Web服务器 FTP服务器 DNS服务器

HTTP协议小记

冷暖自知 提交于 2019-12-26 19:03:13
应用层上的协议非常重要的一个协议是HTTP协议。 这个协议包括了请求和回复两种报文类型。 请求和回复报文的内容形式是 1)起始行 2)首行 3)消息体 请求报文的内容格式是 <version><request-url><method> <headers> <entity-body> 回复报文的内容格式是 <version><status><reason-pharse> <headers> <entity-body> 报文中标签代表的含义是 method:指请求方法,主要的方法为GET和POST。 request-url:指请求路径/地址 version:指协议版本,现在通常是http/1.1   status:指响应状态码,主要的响应状态例如200,404。 reason-pharse:原因短语,200 Ok、404 No Found 这种后面描述的就是原因短语,不必太过关注。 method 请求方法使用频繁的是Get和POST。面试的时候通常被问到这两个方法有什么区别。这里我们来谈一谈。 GET和POST在传输形式上有一些差异。GET请求时,会在request-url地址后拼接参数,格式是url?parm1=ss&parm2=dd。 所以,这样的形式会在地址栏中暴露参数。由于url地址采用ASCII编码,如果参数中有Unicode编码的字符,例如汉字,需要转码后传输。

C#实现网络传输数据加密

杀马特。学长 韩版系。学妹 提交于 2019-12-25 22:18:29
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1. 分组密码 分组密码是将明文消息编码表示后数字序列划分成长为n的分组,各组分别在密钥的作用下进行变换输出等长的数字序列,即密文。一次加密一个数据组,加解密所使用的是同一密钥,故其通常也称为对称加密。分组长n各种不同的对称加密算法取值不同(DES和TripleDES为64位,AES默认为128位,也可以为192位和256位),在对明文消息进行分组时如果最后个分组小于n,则要进行数据填充,使分组长达到n才能进行后续的加密处理。.net平台提供的加密类都很好的处理了上述问题,所以在用C#语言进行实际编码能很简便的完成加解密操作。 Rijndael算法作为AES的一种,已经取代TripleDES(三重DES)成为新的数据加密标准。其分组长度及密钥长度都可变,且比DES算法都要长,使其也具有了更高的安全性。本文的示例程序采用的就是Rijndael算法。 2. 运行模式 分组密码在加密时,明文分组的长度是固定,而实用中待加密消息的数据量是不定的,相邻的两个分组加解密时是否相关,就产生了不同的运行模式。下面主要介绍两种常用的 分组密码运行模式 1. ECB模式 ECB模式是最简单的运行模式,各个分组使用相同的密钥进行加密,如图1所示。 图1. ECB模式示意图 当密钥取定时,对明文的每一个分组,都有一个唯一的密文与之对应