基本的加密术语

1.明文

明文是一个可读,简单的消息,任何人都可以阅读。

2.密文

密文是加密过程的结果。加密的明文显然是明显的随机字符串,使它们无用。

3.加密
加密是将数学函数应用于文件的过程,该文件使其内容不可读且不可访问 - 除非您有解密密钥。

解密
如果加密锁定文件,则解密会反转该过程,将密文重新转换为明文。解密需要两个元素:正确的密码和相应的解密算法。

4.钥匙
加密过程需要一个加密密钥,告诉算法如何将明文转换为密文。密钥上锁和解锁算法是可以允许加密和解密。

密钥是密码吗?

不是。密钥创建是使用算法的结果,而密码通常是用户选择。密码有时是密钥创建过程的一部分。用户使用各种字符和符号输入超强密码,算法使用输入生成密钥。

5.哈希(散列)
因此,当网站加密您的密码时,它会使用加密算法将您的明文密码转换为哈希。哈希不同加密之处在于,一旦数据被哈希化,它不能被在哈希化。或者说,这是非常困难的。

当您需要验证某些内容的真实性但没有回读时,哈希非常有用。在这种情况下,密码哈希提供了一些防止暴力攻击的保护。

6.对称和非对称算法

在现代计算中,有两种主要的加密算法类型:对称和非对称。它们都加密数据,但功能略有不同。

对称算法:使用相同的密钥进行加密和解密。在开始沟通之前,双方必须就算法密钥达成一致。

常用的有 AES 算法,运行速度快,有多种语言的实现版本。
非对称算法:使用两个不同的密钥:公钥和私钥。这使得在通信时能够进行安全加密而无需事先建立相互算法 这也称为公钥密码学。

非对称算法运行速度很慢,所以不适合用来加密大块数据,更普遍的做法是使用非对称算法加密对称算法的密钥。最著名的非对称算法是 RSA 算法和 ECDH 算法。
我们在日常生活中使用的绝大多数在线服务都实现了某种形式的公钥密码学。

7.公钥和私钥

公钥可以发送给其他人,而私钥只有所有者知道。这是为了什么目的?

好吧,任何拥有预期收件人公钥的人都可以为他们加密私人邮件,而收件人只能读取该邮件的内容,前提是他们可以访问配对的私钥。

公钥和私钥在数字签名中也起着至关重要的作用,即发件人可以使用私有加密密钥对其邮件进行签名。那些拥有公钥的人可以验证该消息,并且知道原始消息来自发件人的私钥是安全的。

8.加盐
当密码是密钥创建的一部分时,加密过程需要额外的安全步骤。其中一个步骤是盐化密码。在基层,salt将随机数据添加到单向散列函数。

添加盐可以充分随机化哈希值,使您的密码被攻击期间保持(几乎)完全安全。更好的是,密码仍然链接到您的用户名,因此登录站点或服务时不会出现数据库混淆。

9.证书

是保护服务器与客户端数据交换的另一个重要组成部分。如果证书无效,就不能确保连接的安全性。证书本质上是一种非对称算法系统,用来确认服务端。

10.HTTPS
HTTPS(HTTP安全)是一种现在广泛实施的HTTP应用程序协议的安全升级,它是我们所知道的互联网基础。使用HTTPS连接时,您的数据使用传输层安全性(TLS)进行加密,在传输过程中保护您的数据。

HTTPS生成长期私钥和公钥,而后者又用于创建短期会话密钥。会话密钥是一次性对称密钥,一旦您离开HTTPS站点(关闭连接并结束其加密),连接就会破坏。但是,当您重新访问该站点时,您将收到另一个一次性会话密钥以保护您的通信。

站点必须完全遵循HTTPS才能为用户提供完整的安全性。实际上,2018年是大多数网站开始通过标准HTTP提供HTTPS连接的第一年。

11.端到端加密
最大的加密流行语之一是端到端加密。社交消息平台服务WhatsApp于2016年开始为其用户提供端到端加密(E2EE),确保他们的消息始终是私密的。

在消息传递服务的上下文中,EE2E意味着一旦您点击发送按钮,加密就会保持不变,直到收件人收到消息。这里发生了什么?嗯,这意味着用于编码和解码消息的私钥永远不会离开您的设备,反而是确保除了你没有人可以使用你的昵称发送消息。

WhatsApp是唯一提供端到端加密的消息服务。然而,它确实将移动信息加密的想法进一步推向了主流 - 对全世界无数政府机构来说都是如此。

加密直到结束
不幸的是,有很多政府和其他组织真的不喜欢加密。他们讨厌它的原因与我们认为非常棒的原因相同 - 它可以保持您的通信私密性,并且在很大程度上有助于互联网功能。

没有它,互联网将成为一个非常危险的地方。从表面上看,加密似乎令人生畏。我不会说谎, 加密的数学基础有时很复杂。但是你仍然可以在没有数字的情况下欣赏加密,而这一点非常有用。


       非对称加密——公钥/私钥/加密解密/签名验签

  非对称加密,意思就是加密解密的密码不一样.初次接触的人恐怕无论如何都理解不了.其结果就是用这一组密钥中的一个来加密数据,可以用另一个解开.是的没错,公钥和私钥都可以用来加密数据,相反用另一个解开,公钥加密数据,然后私钥解密的情况被称为加密解密,私钥加密数据,公钥解密一般被称为签名和验证签名.

  因为公钥加密的数据只有它相对应的私钥可以解开,所以你可以把公钥给人和人,让他加密他想要传送给你的数据,这个数据只有到了有私钥的你这里,才可以解开成有用的数据,其他人就是得到了,也看不懂内容.同理,如果你用你的私钥对数据进行签名,那这个数据就只有配对的公钥可以解开,有这个私钥的只有你,所以如果配对的公钥解开了数据,就说明这数据是你发的,相反,则不是.这个被称为签名.

       加密解密:发送消息时,你用对方给的公钥加密文件,对方用自己的私钥才能解开文件。其他人就是得到了文件也解不开。

       签名验签:发送消息时,你用自己的私钥加密文件,对方只有拥有配对的公钥才能解密。另一方面,如果对方用你给的公钥解密成功,就说明这文件是你发的。

  实际应用中,一般都是和对方交换公钥,然后你要发给对方的数据,用他的公钥加密,他得到后用他的私钥解密,他要发给你的数据,用你的公钥加密,你得到后用你的私钥解密,这样最大程度保证了安全性.

        CA/PEM/DER/X509/PKCS

  一般的公钥不会用明文传输给别人的,正常情况下都会生成一个文件,这个文件就是公钥文件,然后这个文件可以交给其他人用于加密,但是传输过程中如果有人恶意破坏,将你的公钥换成了他的公钥,然后得到公钥的一方加密数据,不是他就可以用他自己的密钥解密看到数据了吗,为了解决这个问题,需要一个公证方来做这个事,任何人都可以找它来确认公钥是谁发的.这就是CA,CA确认公钥的原理也很简单,它将它自己的公钥发布给所有人,然后一个想要发布自己公钥的人可以将自己的公钥和一些身份信息发给CA,CA用自己的密钥进行加密,这里也可以称为签名.然后这个包含了你的公钥和你的信息的文件就可以称为证书文件了.这样一来所有得到一些公钥文件的人,通过CA的公钥解密了文件,如果正常解密那么机密后里面的信息一定是真的,因为加密方只可能是CA,其他人没它的密钥啊.这样你解开公钥文件,看看里面的信息就知道这个是不是那个你需要用来加密的公钥了.

  实际应用中,一般人都不会找CA去签名,因为那是收钱的,所以可以自己做一个自签名的证书文件,就是自己生成一对密钥,然后再用自己生成的另外一对密钥对这对密钥进行签名,这个只用于真正需要签名证书的人,普通的加密解密数据,直接用公钥和私钥来做就可以了.

  密钥文件的格式用OpenSSL生成的就只有PEM和DER两种格式,PEM的是将密钥用base64编码表示出来的,直接打开你能看到一串的英文字母,DER格式是二进制的密钥文件,直接打开,你可以看到........你什么不懂!.X509是通用的证书文件格式定义也看.pkcs的一系列标准是指定的存放密钥的文件标准,你只要知道PEM DER X509 PKCS这几种格式是可以互相转化的.

转载自:openssl基本原理 + 生成证书 + 使用实例_oldmtn的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目的: 本概要设计说明书旨在描述一个二手交易平台的基本设计和实现,包括产品介绍、产品范围、用户群体及角色、运行环境、整体业务流程图、功能性需求分类、用户界面需求、性能需求、产品质量需求、体系结构说明、技术架构说明、界面及功能操作说明、外部接口、内部接口、运行模块的组合、出错处理设计、出错处理对策、安全保密设计、维护设计等方面的内容,以帮助开发人员快速了解该平台的设计和实现。 范围: 本文档的范围包括二手交易平台的基本设计和实现,不包括具体的实现细节。 读者对象: 本文档的读者对象包括开发人员、测试人员、项目经理、需求分析人员、用户等。 参考文档: 1. 《互联网+二手交易平台需求分析文档》 2. 《软件开发规范》 3. 《数据库设计规范》 4. 《系统测试规范》 术语与缩写解释: 1. 二手交易平台:指提供二手交易服务的在线平台。 2. 用户:指使用本平台服务的注册用户。 3. 管理员:指平台管理人员,负责平台的管理和维护。 4. 商品:指用户在平台上发布的二手交易物品。 产品介绍: 二手交易平台是一个提供二手物品交易服务的在线平台,用户可以在平台上发布自己的闲置物品并进行交易。 产品范围: 本平台包括用户注册、登录、发布商品、浏览商品、购买商品、支付、评价等基本功能。 用户群体及角色: 1. 用户:可以在平台上进行商品的发布、购买、评价等操作。 2. 管理员:负责平台的管理和维护,包括用户管理、商品管理、订单管理等。 运行环境: 1. 操作系统:Windows、Linux等。 2. 数据库:MySQL、Oracle等。 3. Web服务器:Tomcat、Apache等。 4. 开发语言:Java、JavaScript等。 假设: 1. 用户已经注册并登录成功。 2. 用户已经了解了平台的基本操作流程。 依赖和约束: 1. 开发人员需要遵守公司的软件开发规范。 2. 数据库设计需要遵守公司的数据库设计规范。 3. 系统测试需要遵守公司的系统测试规范。 整体业务流程图: 见附图。 功能性需求分类: 1. 用户管理 1.1 用户注册 1.2 用户登录 1.3 用户信息修改 1.4 用户注销 2. 商品管理 2.1 商品发布 2.2 商品浏览 2.3 商品搜索 3. 订单管理 3.1 订单生成 3.2 订单支付 3.3 订单状态查询 4. 评价管理 4.1 商品评价 4.2 用户评价 用户界面需求: 1. 界面风格简洁明了。 2. 界面操作方便、易于使用。 3. 界面颜色搭配和谐。 性能需求: 1. 系统响应速度快,用户操作流畅。 2. 数据库读写速度快,保证数据的实时性。 3. 平台的同时在线用户数较大时,系统仍能正常运行。 产品质量需求: 1. 平台功能稳定,无明显的漏洞和错误。 2. 平台安全性高,保护用户信息不受恶意攻击。 3. 平台易用性好,用户容易上手使用。 体系结构说明: 本平台采用B/S结构,前端使用HTML、CSS、JavaScript等技术实现,后端使用Java语言开发,数据库采用MySQL实现。 技术架构说明: 1. 前端采用MVC架构模式,通过JavaScript与后端进行交互。 2. 后端采用Spring框架,实现了IOC、AOP等功能。 3. 数据库采用MySQL关系型数据库,通过JDBC与后端进行交互。 界面及功能操作说明: 见附图。 外部接口: 本平台需要接入支付宝、微信支付等第三方支付平台。 内部接口: 1. 前端与后端通过RESTful API进行交互。 2. 后端与数据库通过JDBC进行交互。 运行模块的组合: 本平台的运行模块包括前端、后端、数据库等。 出错处理设计: 1. 如果用户在操作过程中出现错误,平台会给出相应的提示,引导用户正确操作。 2. 如果平台本身出现错误,会记录错误信息并通知管理员进行处理。 出错处理对策: 1. 用户操作错误时,需要给出相应的提示和引导,帮助用户完成正确的操作。 2. 平台错误需要及时记录并通知管理员进行处理。 安全保密设计: 1. 用户密码需要加密存储。 2. 用户的个人信息需要进行保密处理。 3. 平台需要加入防止恶意攻击的机制。 维护设计: 1. 平台需要定期进行备份和恢复。 2. 平台需要定期进行性能测试和安全检测。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值