加密的TCP通讯全过程

加密的TCP通讯全过程转自:http://blog.csdn.net/laotse/article/details/5910378首先3个概念,1、不可逆加密2、可逆对称加密3、可逆非对称加密1、不可逆加密,大家最熟悉的一种,md5sha1就是,加密后就不能解密,只能用于存储密码和校验文件变动,不能用于网络通讯。2、可逆对称加密,用一个钥匙把内容加密,只要有这个钥匙的人就可以解密,就像登录wi

大家好,又见面了,我是你们的朋友全栈君。

转自:http://blog.csdn.net/laotse/article/details/5910378

首先3个概念,1、不可逆加密2、可逆对称加密3、可逆非对称加密

1、不可逆加密,大家最熟悉的一种,md5 sha1就是,加密后就不能解密,只能用于存储密码和校验文件变动,不能用于网络通讯。

2、可逆对称加密,用一个钥匙把内容加密,只要有这个钥匙的人就可以解密,就像登录windows,要一个密码,只要有密码谁都能登录,但是如果没有这密钥,就很难很难解密,就像破解windows密码需要穷尽一样。非常适合网络加密通讯。如果客户和服务器都有着把钥匙,那么通讯过程是保密的,即使通讯内容被截获,看到的也是一堆乱七八糟的加密后的byte,通讯内容是安全的。

但是这就产生一个问题了,客户端有这把钥匙在程序某个部分,如果被反编译或者什么的被人发现了,那么以后所有客户端和服务器通讯都可以被截获者解密,从而失去了加密意义,所以这把钥匙服务器要经常变换不能事先给客户端,需要每次通讯前才给客户端,但是这样这把钥匙还是可以被截获着截获,所以如何安全发送这把钥匙就成了关键,只要钥匙安全了,那么整个对称加密就安全了,如果钥匙被人发现了,这个过程就没有秘密可言。

所以可逆非对称加密就出现了

3、可逆非对称加密,客户端和服务器通讯的时候,客户端先用非对称加密生成2把随机钥匙,一把叫公钥一把叫密钥,关键就在这里,用这个公钥加密的内容不能用公钥解密,只能用密钥解密,客户端把公钥发送给服务器,服务器用这个客户端生成的公钥把某内容加密后返还给客户端,客户端用那把密钥解密。

仔细看看这个过程,假定有个拦截者,一开始,客户把公钥发送给服务器,比如让拦截者给截获了,服务器返回用这个公钥加密的内容,也让拦截者给截获了,拦截者想用这个公钥解密,但是发现不行,公钥加密的内容只能用密钥才能解密,公钥只起一个加密作用。那密钥在哪呢?在客户端那个程序的内存里,并没有通过网络发送(而且呢,这个公钥和密钥是临时随机生成的,在内存里,当客户端不运行的时候即使反编译该程序也看不到),客户端那个程序就可以解密,而拦截者即使截获了公钥和公钥加密的内容,也是白忙一场一点用都没有。所以服务器返回的那段用公钥加密的内容是安全的。

 

大家是不是发现非对称加密比对称加密要安全不知道多少倍啊,全随机的,那直接全都用非对称加密就天下太平了那还要对称加密干什么呢?但是非对称虽好,但是却很慢,不能对大量的通信内容进行加密通信(不知道,反正都这么说),只能开始通信的时候用这种方式传送一点很重要的内容。

那用来传送点什么内容呢?

 

用来传送对称加密的那边钥匙就非常合适,2部分不是说对称加密唯一不安全的地方就是那边钥匙的传送过程不安全么,那么先用非对称加密传送对称加密的钥匙,这样对称加密的钥匙的传送过程就安全了,钥匙安全问题解决了所以对称加密和非对称加密就一样安全了,这时就关闭非对称加密,以后都用对称加密了,速度也上来了。这就是非对称加密和对称加密配合使用的过程,网上很多应用都是这种方式。

在.net下实现这3种加密太容易了,都是封装好的不能再好的类。过程几行就完了。对称加密用TripleDESCryptoServiceProvider,最大支持24字节(192位)的加密,非对称用RSACryptoServiceProvider。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137794.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月1日 下午12:46
下一篇 2022年6月1日 下午12:46


相关推荐

  • 智慧记AI进销存电脑WIFI网络云盒教程

    智慧记AI进销存电脑WIFI网络云盒教程

    2026年3月14日
    2
  • Nano Banana2太强了!万物可像素级拆解(附保姆级教程+APi接入教程)

    Nano Banana2太强了!万物可像素级拆解(附保姆级教程+APi接入教程)

    2026年3月15日
    2
  • URLEncoder转换字符串问题

    URLEncoder转换字符串问题今天在开发过程中遇到了一个坑,关于使用URLEncoder去encode字符串的问题,是解析一个下载地址,由于下载文件名中含有空格,导致encode之后所有空格变成了“+”,url拼接自然就出错了,下载地址相应不到报了404异常,由于之前没接触过这方面的事情,也算是给自己挖了一个小坑,特此记录一下。这段是业务背景,不想看的直接跳到下一段看解决办法哈。大概是这样,公司网站原本下载各种附件的地…

    2022年6月29日
    30
  • 图文详解 MapReduce 工作流程

    图文详解 MapReduce 工作流程前言本文隶属于专栏 1000 个问题搞定大数据技术体系 该专栏为笔者原创 引用请注明来源 不足和错误之处请在评论区帮忙指出 谢谢 本专栏目录结构和参考文献请见 1000 个问题搞定大数据技术体系正文 MapReduce 编程模型 MapReduce 编程模型开发简单且功能强大 专门为并行处理大规模数据量而设计 接下来 通过一张图来描述 MapReduce 的工作过程 如图所示 关于 MapReduce 编程模型的更多细节请参考我的这篇博客 MapReduce 编程模型到底是怎样的 整体流程

    2026年3月18日
    2
  • EasyUI初体验–右键弹框

    EasyUI初体验–右键弹框

    2021年12月9日
    45
  • android图片资源加密,Android平台图像文件加密

    android图片资源加密,Android平台图像文件加密传统计算机平台下的图像加密技术已经得到了广泛的研究和应用,但移动平台受限于当前的硬件架构,无法直接继承传统平台的安全性技术。针时智能手机等移动平台中的图像信息安全问题,提出了一种基于Android移动平台的图像加密方案。一、图像加密技术1、传统图像加密技术分析传统的图像加密技术主要基于现代密码体制。通常将图像像素信息看作一维数据流,在密钥的控制下,利用加密算法(常用加密算法如EDS、AES、RC6…

    2022年5月17日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号