当前位置:首页 > 软件开放 > 正文内容

代码实现文件加密方法(代码加密是什么意思)

软件开放9个月前 (02-25)334

程序世界里的一切都是围绕信息做的处理,信息的传输安全尤为重要.jwt作为一个可用作分布式的web Token解决方案,就是基于信息的加密解密做的,所以要从根本上理解jwt,那加密解密是绕不开的一个话题.

在密码学中, 加密(英语:Encryption)是将明文信息改变为难以读取的密文内容,使之不可读的过程。只有拥有解密方法的对象,经由解密过程,才能将密文还原为正常可读的内容。理想情况下,只有经授权的人员能够读取密文所要传达的信息。加密本身并不能防止信息传输被截取,但加密能防止截取者理解其内容。因为种种技术原因,加密方法通常使用一个通过算法生成的伪随机密钥。虽然任何加密后的消息都可能被破解,但对于一个良好的加密算法而言,破解需要相当多的技术和算力。授权读取信息的人可以轻松通过发信人所提供的密钥解密信息,但未经授权的人员则不行。密码学历史中有众多加密方法;早期的加密方法常用于军事通讯。从此开始,现代计算中也出现了众多加密技术,并且加密在现代计算中也变得越来越常见。[1]现代的加密方式通常使用公钥或对称密钥。现代加密技术依赖现代计算机在破解密钥上并不高效的事实来保证其安全性。

--维基百科

--维基百科

从维基百科的描述可知加密实际上是通过一系列计算将人类可以理解的文字转换成人类无法直接理解的内容,解密就是将加密后的内容再还原回去的过程,理论上来说不存在无法破解的密文.

2.分类:

对称密钥加密

在对称密钥加密方案中,加密和解密密钥是相同的。通信方必须具有相同的密钥才能实现安全通信。对称密钥的一个典型例子:德国军方的恩尼格玛密码机。这种密码机每天都有密钥设置。当盟军弄清楚机器如何工作时,他们能够在发现给定日期传输的加密密钥后立即解密消息中编码的信息。

公钥加密[俗称 :非对称加密]

在公钥加密(即公开密钥加密)方案中,发布加密密钥供任何人使用和加密消息。但是,只有接收方才能访问能够读取消息的解密密钥。公钥加密最早是在1973年的一份秘密文件中描述的[3]; 之前所有加密方案都是对称密钥加密(也称为私钥)。

3.在.net中的实现

所有加密相关的都在 System.Security.Cryptography类库下,本文所有代码都需要引用System.Security.Cryptography

1.对称密钥加密

缺点加密解密双方的密钥是相同的,密钥传输是一个非常大的问题,唯一的密钥泄漏后,就不再安全,相对来说Aes加密计算更加复杂一些,被穷举的可能性更低,本文在对称密钥加密中只介绍DES和Aes两种

DES.Create方法创建的DES对象会有一个默认的Key,在自己的项目中使用的时候,这个公钥信息要保存好,确保加解密都使用相同的密钥进行即可. 所有加密类都是基于byte[]做的,所以在做此类封装的时候,如果是针对字符串做加密,一定要统一字符编码,加密用Utf8,解密也用Utf8.

DES实现加解密,密钥要求是 byte[8]如下:

AES是由DES发展而来它比DES多了一个叫IV向量的东西,密钥从原先的8位提升到了 32位,IV向量必须是 16位的.具体原理可以去翻文档,同样的Aes.Create也会默认有一个IV和Key.

对称密钥加密在编码中容易出错的地方就在密钥的设置的时候,也许密钥长度还有其他可能或者组合,不去深究了.

2. 公钥加密(非对称加密)

展开全文

相对于对称密钥加密,公钥加密是一种全新的密码方案,该方案中表示密钥的有两个一个私钥一个公钥,通过公钥加密,只能通过私钥进行解密,相比对称密钥加密,公钥加密不需要考虑密钥传输的问题,所以也就不存在密钥泄漏的问题,在微软文档中有明确提示,不应在任何情况下以明文形式保存私钥,建议的方案是将私钥保存到本机的私钥管理器中,不过为了写出下边的代码,我决定不接受他的建议

RSA.Create 同样会生成默认的公钥和私钥,想让别人使用自己颁发的公钥,用这个生成就行了,

stringtest = "你好开发者"; byte[] encryptedSymmetricKey = rsa.Encrypt(Encoding.UTF8.GetBytes(test), RSAEncryptionPadding.Pkcs1); Console.WriteLine( $"加密后的数据: {Convert.ToBase64String(encryptedSymmetricKey)}" );

/*解密*/varrasDes = RSA.Create; //导入私钥解密rasDes.ImportRSAPrivateKey(Convert.FromBase64String(prikey), outintbytesRead2); vardes = rasDes.Decrypt(encryptedSymmetricKey, RSAEncryptionPadding.Pkcs1); Console.WriteLine( $"解密后的数据: {Encoding.UTF8.GetString(des)}" );

可以看到确实如描述一般,公钥加密后就能通过私钥解密了.

代码实现文件加密方法(代码加密是什么意思)

3. Hash摘要算法

hash摘要算法不能算到加密解密中,因为基于它的计算是不可逆的,在一定数据范围[]内不重复,但不保证不一样的两个明文不会被计算为一个结果.所以在加密解密家族群里,它是妥妥的灭绝师太,渣男,只管加密不管解.,一个比较重要的特点就是 通过摘要算法计算可以将不同长度的数据计算为一个固定位长度的byte数组.一般用于保存密码,等永远没有查看需求的地方.就算拿到加密串你也拿它没辙.最常见的就是MD5,其实还有好多,好在.net已经将这些常用的都做了封装.代码如下:

扫描二维码推送至手机访问。

版权声明:本文由飞速云SEO网络优化推广发布,如需转载请注明出处。

本文链接:http://chlfg.com/post/91423.html

分享给朋友:

“代码实现文件加密方法(代码加密是什么意思)” 的相关文章

如何自己创造软件(怎么创造一个软件)

如何自己创造软件(怎么创造一个软件)

今天给各位分享如何自己创造软件的知识,其中也会对怎么创造一个软件进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、手机怎么创造软件 2、怎么样开发一个软件 3、如何从零开始做一个安卓APP软件? 4、怎么才能制作游戏软件 5、手机怎么自己制作软...

ug软件下载官方网站(ug软件手机版下载)

ug软件下载官方网站(ug软件手机版下载)

本篇文章给大家谈谈ug软件下载官方网站,以及ug软件手机版下载对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、谁有UG软件下载的网站啊?确定可用的,最好是能配套ug教程,ug8.0,ug8.5都可以 2、UG软件怎么下载和安装?图文教程 3、UG4.0软件下载地址...

手机百度浏览器收藏删除了怎么恢复(手机百度删除的收藏怎么恢复)

手机百度浏览器收藏删除了怎么恢复(手机百度删除的收藏怎么恢复)

今天给各位分享手机百度浏览器收藏删除了怎么恢复的知识,其中也会对手机百度删除的收藏怎么恢复进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、百度浏览器收藏误删怎么找回 2、手机百度浏览记录怎么恢复 3、手机浏览器删掉怎么找回收藏的网址 4、手机百度...

酷信源码下载(酷信下载安装)

酷信源码下载(酷信下载安装)

今天给各位分享酷信源码下载的知识,其中也会对酷信下载安装进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、酷信通怎样恢复出厂设置 2、酷信即时通讯软件有什么特点? 酷信通怎样恢复出厂设置 1、先行备手机内的数据 (短信、联系人、下载的应用程序等),然后请...

csgo武器皮肤交易平台app(csgo皮肤交易网)

csgo武器皮肤交易平台app(csgo皮肤交易网)

今天给各位分享csgo武器皮肤交易平台app的知识,其中也会对csgo皮肤交易网进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、csgo卖皮肤去哪个平台 2、csgo买皮肤去哪个平台? 3、csgo买皮肤去哪个平台 csgo卖皮肤去哪个平台 Igx...

网页客服系统源码(网站在线客服系统源码)

网页客服系统源码(网站在线客服系统源码)

本篇文章给大家谈谈网页客服系统源码,以及网站在线客服系统源码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、天马客服系统源码在哪 2、请问怎么在网页里面加入在线客服系统的代码,代码要怎么获得? 3、在线客服系统源码 4、什么在线客服系统源码可以用,我们公司的网...