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

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

软件开放7个月前 (02-25)303

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

分享给朋友:

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

制作一个手机app软件需要多少钱(怎么制作app软件需要多少钱)

制作一个手机app软件需要多少钱(怎么制作app软件需要多少钱)

本篇文章给大家谈谈制作一个手机app软件需要多少钱,以及怎么制作app软件需要多少钱对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、谁知道定制一个app软件需要多少钱? 2、制作一个app需要多少钱? 3、开发一个app需多少钱 4、做一个简单的app系统软件...

免费的h5游戏制作平台(h5制作平台免费)

免费的h5游戏制作平台(h5制作平台免费)

今天给各位分享免费的h5游戏制作平台的知识,其中也会对h5制作平台免费进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、微信H5页面免费制作工具有哪些,求各位大神解答 2、H5制作平台哪个比较好用? 3、H5制作平台有哪些 4、像云来一样,免费好用...

苹果码怎么查真假(怎么查询苹果手机真伪代码)

苹果码怎么查真假(怎么查询苹果手机真伪代码)

今天给各位分享苹果码怎么查真假的知识,其中也会对怎么查询苹果手机真伪代码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、苹果手机怎么查真伪,? 2、苹果官网查序列号怎么看真假 3、苹果手机怎样查询真伪? 4、苹果序列号怎么查真伪吗 5、苹果查...

交易平台冻结资金让充钱解冻怎么举报(交易平台资金冻结了需要充钱解冻吗)

交易平台冻结资金让充钱解冻怎么举报(交易平台资金冻结了需要充钱解冻吗)

今天给各位分享交易平台冻结资金让充钱解冻怎么举报的知识,其中也会对交易平台资金冻结了需要充钱解冻吗进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、游戏平台把我的资金冻结了,要求我给他们打500过去才能解冻,不然会被永久冻结,该怎么办,钱还能拿回 2、我在...

中台架构与实现(中台架构与实现基于DDD和微服务)

中台架构与实现(中台架构与实现基于DDD和微服务)

今天给各位分享中台架构与实现的知识,其中也会对中台架构与实现基于DDD和微服务进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、中台是什么意思 2、数据中台有什么好处? 3、业务中台和数据中台有什么关系? 4、百胜软件E3全渠道中台采用的什么底层架...

cad2016源泉插件怎么安装(cad源泉插件安装教程)

cad2016源泉插件怎么安装(cad源泉插件安装教程)

今天给各位分享cad2016源泉插件怎么安装的知识,其中也会对cad源泉插件安装教程进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、源泉cad插件改颜色 2、源泉插件cad表格导入wps 3、CAD2020已经安装了源泉设计插件,但是打开上面也没有显...