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

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

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

程序世界里的一切都是围绕信息做的处理,信息的传输安全尤为重要.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://hon-tex.cn/post/91423.html

分享给朋友:

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

怎么创建网站(怎么建网站)

怎么创建网站(怎么建网站)

本篇文章给大家谈谈怎么创建网站,以及怎么建网站对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、如何创建自己的网站平台 2、怎样自己创建一个网站? 3、怎么创建网站 4、怎么建网站呀! 5、怎么创建一个自己的网站 如何创建自己的网站平台 创建自己的网站平台...

什么记账软件好用简单(什么记账软件好用简单手机)

什么记账软件好用简单(什么记账软件好用简单手机)

今天给各位分享什么记账软件好用简单的知识,其中也会对什么记账软件好用简单手机进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、手机记账软件哪个好? 2、有哪些好用的记账app? 3、好用的记账软件有哪些? 手机记账软件哪个好? 现在常用的记账app主...

eclipse默认工作空间路径设置(eclipse配置构建路径)

eclipse默认工作空间路径设置(eclipse配置构建路径)

今天给各位分享eclipse默认工作空间路径设置的知识,其中也会对eclipse配置构建路径进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、如何修改eclipse默认的工作空间路径及字体显示 2、怎么修改Eclipse默认打开路径 3、eclipse...

nft交易平台开发(nft交易网)

nft交易平台开发(nft交易网)

今天给各位分享nft交易平台开发的知识,其中也会对nft交易网进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、怎么开发自己的nft平台 2、搭建一个nft平台要哪些技术? 3、nft平台开发难度 4、成熟数字藏品系统介绍 (NFT交易平台APP定...

一键PPT制作APP(一键PPT制作APP)

一键PPT制作APP(一键PPT制作APP)

本篇文章给大家谈谈一键PPT制作APP,以及一键PPT制作APP对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、做ppt的软件 2、免费制作ppt的手机软件 3、手机免费制作ppt的软件 做ppt的软件 WPSOffice,MicrosoftPowerPoint...

网站推广的基本方法是(常用于网站推广的营销手段是)

网站推广的基本方法是(常用于网站推广的营销手段是)

本篇文章给大家谈谈网站推广的基本方法是,以及常用于网站推广的营销手段是对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、网站推广的基本方法有哪些 2、网站推广常用的方式 3、网络推广的主要方法是什么? 网站推广的基本方法有哪些 网站推广的方法有哪些呢?网站推广以电...