文件的加密与解密算法

合集下载

文件加解密的总结

文件加解密的总结

文件加解密的总结文件加解密是信息安全领域中非常重要的一项技术,它能够保护文件的机密性和完整性。

在本文中,我们将总结文件加解密的基本概念、常用的加解密算法以及一些应用场景。

基本概念文件加解密是指通过使用特定的算法将文件从明文转换为密文,或者将密文转换为明文的过程。

这个过程通常需要使用一个密钥来进行加解密操作。

•明文:未经加密的文件或数据。

•密文:经过加密处理后的文件或数据。

•加密算法:用于将明文转换为密文的算法。

•解密算法:用于将密文转换为明文的算法。

•密钥:用于加解密操作的关键信息。

常用的加解密算法对称加密算法对称加密算法使用同一个密钥对明文进行加密和密文进行解密。

这种算法的优点是加解密速度快,但是需要确保密钥的安全性。

常见的对称加密算法有:•AES(高级加密标准):广泛应用于实际系统中的对称加密算法,支持不同的密钥长度。

•DES(数据加密标准):早期的对称加密算法,已经被认为不安全,但仍然在某些遗留系统中使用。

•3DES(三重数据加密算法):对DES进行了三次重复加密以提高安全性。

非对称加密算法非对称加密算法使用成对的密钥,其中一个用于加密,另一个用于解密。

通常将一个密钥称为私钥,用于解密,将另一个密钥称为公钥,用于加密。

这种算法的安全性较高,但是加解密速度较慢。

常见的非对称加密算法有:•RSA(Rivest-Shamir-Adleman):最常用的非对称加密算法,广泛应用于数字签名和密钥交换等场景。

•ECC(Elliptic Curve Cryptography):基于椭圆曲线数学问题,具有较高的安全性和较小的密钥尺寸。

文件加解密的应用场景数据传输安全在网络通信中,为了保护数据的机密性和完整性,常常需要对传输的文件进行加密。

发送方使用加密算法将文件加密后传输,并将密钥通过非加密通道发送给接收方。

接收方使用解密算法和密钥将密文还原为明文。

存储安全为了确保存储在本地计算机或云存储中的文件的安全性,可以使用文件加解密技术。

WPS技术员揭秘文件加密与解密的方法与原理

WPS技术员揭秘文件加密与解密的方法与原理

WPS技术员揭秘文件加密与解密的方法与原理近年来,随着信息技术的快速发展和互联网的普及,我们的个人隐私和机密文件变得更加容易受到攻击和侵犯。

为了保护文件的安全性,许多人开始使用加密技术来防止敏感信息被非法访问。

WPS作为一款常用的办公软件,提供了文件加密和解密功能,使用户可以更好地保护他们的文件。

本文将介绍WPS技术员揭秘文件加密与解密的方法与原理。

一、文件加密的方法与原理1. 对称加密算法在WPS中,对称加密算法是最常用的文件加密方法之一。

它使用相同的密钥进行文件的加密和解密。

加密过程可以被描述为:将明文文件和密钥作为输入,通过特定的算法产生密文文件。

而解密过程则是将密文文件和相同的密钥作为输入,通过逆向算法还原为明文文件。

这种加密方法的原理在于密钥的保密性,只有掌握密钥的人才能够成功解密文件。

2. 非对称加密算法WPS还提供了非对称加密算法,也称为公钥加密算法。

它使用一对密钥,即公钥和私钥。

公钥可以被任何人获得,而私钥只有文件的拥有者可以掌握。

在加密过程中,使用公钥对文件进行加密,而解密过程则需要使用私钥。

这种加密方法的原理在于公钥和私钥之间的数学关系,只有拥有私钥的人才能够成功解密文件。

3. 混合加密算法为了综合利用对称加密和非对称加密的优势,WPS还提供了混合加密算法。

它结合了两种加密方法的特点,在文件加密的过程中首先使用非对称加密算法,即用接收者的公钥对文件进行加密。

然后,再使用对称加密算法,即使用一个随机生成的密钥对文件进行加密。

解密过程则相反,先用私钥解密对称密钥,再用对称密钥解密文件。

这种加密方法的原理在于非对称加密算法提供了密钥的安全交换,并且对称加密算法提供了更高的加密效率。

二、文件解密的方法与原理与加密过程相反,文件解密是将加密文件还原为明文文件的过程。

在WPS中,解密的方法与原理与加密是一致的,只是在输入上略有不同。

1. 对称加密算法的解密方法要解密由对称加密算法加密的文件,需要使用相同的密钥进行解密。

移动应用开发中的文件加密与解密方法

移动应用开发中的文件加密与解密方法

移动应用开发中的文件加密与解密方法移动应用开发越来越受到人们的关注和依赖,随之而来的是对数据安全的担忧。

在移动应用中,文件的加密和解密是保护用户隐私和保证数据安全的重要手段。

本文将探讨移动应用开发中常见的文件加密和解密方法,以及它们的优劣势。

一、对称加密算法对称加密算法是一种加密和解密使用相同密钥的算法。

常见的对称加密算法有DES、AES等。

在移动应用开发中,对称加密算法常用于对文件进行加密和解密。

其加密过程简单快速,适用于大文件加密,但密钥的安全传输是一个难题。

对称加密算法的强大之处在于加密解密过程的效率和速度。

例如,AES算法被广泛应用于保护移动应用中的敏感数据。

使用256位长度的密钥对文件进行加密,可以有效防止数据泄露。

然而,对称加密算法存在一个问题,即密钥的管理和传输。

如果密钥在传输过程中被窃取,所有的数据都将变得不安全。

因此,在实际应用中,为了保证数据的安全,需要采取一些额外的安全措施,例如通过HTTPS传输密钥,或者使用公钥加密密钥等。

二、非对称加密算法非对称加密算法是一种使用公钥和私钥进行加密和解密的算法。

常见的非对称加密算法有RSA、DSA等。

在移动应用开发中,非对称加密算法常用于密钥交换和数字签名等场景。

非对称加密算法具有更高的安全性,因为公钥和私钥是分开存储的。

用户可以把公钥发送给他人,而自己保留私钥,从而保证数据的安全性。

但非对称加密算法的计算速度较慢,适合对小文件进行加密,对大文件进行加密将会十分耗时。

在移动应用中,可以使用非对称加密算法对文件进行加密,然后使用对称加密算法来加密和解密对称密钥。

这样既保证了密钥的安全传输,又提高了加密解密过程的效率。

三、混合加密算法混合加密算法是对称加密算法和非对称加密算法的结合。

在移动应用开发中,混合加密算法常用于加密和解密文件。

基本思想是使用非对称加密算法对对称密钥进行加密,然后再使用对称加密算法对文件进行加密。

混合加密算法综合了对称加密算法和非对称加密算法的优点,解决了密钥的安全传输问题,并提高了加密解密的效率。

加密文件和解密方法

加密文件和解密方法

加密文件和解密方法加密和解密是信息安全领域的重要概念,用于保护敏感信息的安全性。

本文将介绍几种常见的文件加密和解密方法,并简要说明它们的原理和适用情景。

一、对称加密算法对称加密算法使用相同的密钥对文件进行加密和解密。

常见的对称加密算法有DES、AES和3DES等。

DES(Data Encryption Standard)是一种采用对称密钥加密的块加密算法,密钥长度为64位。

由于DES的密钥长度较短,因此安全性相对较低,现已不推荐使用。

AES(Advanced Encryption Standard)是一种高级加密标准,是目前使用范围最广泛的对称加密算法。

AES可以采用128位、192位或256位密钥长度,具有较高的安全性和较快的加密速度。

3DES(Triple Data Encryption Standard)是DES的增强版,使用3个不同的密钥对数据进行3次加密和3次解密。

由于强化了密钥长度,3DES的安全性较DES有所提高。

对称加密算法的优点是加密和解密速度快,适用于大文件的加密和解密。

但由于密钥的传输和管理问题,对称加密算法在网络传输中存在安全隐患。

二、非对称加密算法非对称加密算法使用不同的密钥对文件进行加密和解密。

常见的非对称加密算法有RSA和DSA等。

RSA(Rivest-Shamir-Adleman)是一种基于大数因子分解的非对称加密算法,其加密和解密过程使用不同的密钥对。

RSA算法的安全性基于大数分解的难题,其密钥长度可选1024位、2048位或4096位。

DSA(Digital Signature Algorithm)是一种基于离散对数问题的非对称加密算法,主要用于数字签名和认证。

DSA算法的安全性基于DL(离散对数问题)的难题,密钥长度通常为1024位或2048位。

非对称加密算法的优点是密钥传输安全,并且可以实现数字签名等功能。

但由于计算复杂度较高,非对称加密算法处理大文件时速度较慢。

办公文档加密与解密

办公文档加密与解密

办公文档加密与解密办公文档加密与解密在现代商务活动及日常办公中,我们经常用到的办公软件有Microsoft Office和Adobe Acrobat等,这些软件都为用户提供文档加密和权限设置功能。

当然,有加密就有解密,针对这些加密文档的解密软件层出不穷,功能也日益强大。

对此,本文将主要就当前主流办公文档的加密强度和解密难度两个方面进行详细阐述,并提出可行的文档加密策略。

1 文档加密的算法和强度文档的加密算法和强度基本遵循了从40-bit RC4加密到128-bit RC4加密,再从AES 128-bit加密到AES 256-bit加密的演变过程。

促成这种变化的主要根源在于长度较小的密钥已经无法适应当今分布式开放网络对数据加密安全性的要求。

1.1 Microsoft Office文档密码Office作为桌面办公的首选软件,目前已被广泛应用,是最受欢迎的办公软件之一,其版本有很多,从97、2022年、2022年、2022年到2022年、2022年、2022年,再到现在最新的Office 365。

其中,Office 97/2022年采用的40-bit RC4加密,常用的单机系统使用Key Searching 密钥空间穷举搜索攻击能在几小时内100%破解成功,在线破解服务更是能在数秒之间获得明文;Office2022年/2022年文件加密功能的密钥虽然可以达到128位,但需要用户进行特殊设定,同时,由于加/解密密钥Key的生成运算缺失迭代,因此,用户在进行口令破解时,速度可以很快,同样,在线破解服务能在数秒之间获得明文;Office 2022年/2022年/2022年在文件格式架构上有了极大的跨越,支持Open XML文件的加密类型,采用的是128-bit AES加密,使得Key Searching密钥空间穷举搜索攻击解密失效,同时,加/解密密钥Key生成运算经过几万次迭代,使得用户口令猜测变得十分缓慢。

文件系统加密与解密

文件系统加密与解密

文件系统加密与解密在数字化时代,保护个人和机构的数据安全变得尤为重要。

文件系统加密与解密技术的应用,为我们提供了一种有效的保护机制。

本文将探讨文件系统加密与解密的原理、应用和未来发展趋势。

一、文件系统加密与解密的原理文件系统加密与解密技术是通过对存储在磁盘上的文件进行加密和解密操作,使得只有授权用户能够访问和读取这些文件。

加密过程中,文件被转化为一串乱码,只有使用正确的密钥才能将其解密还原为可读的文件。

在加密过程中,常用的加密算法包括对称加密算法和非对称加密算法。

对称加密算法使用相同的密钥进行加密和解密,而非对称加密算法使用公钥和私钥进行加密和解密。

二、文件系统加密与解密的应用1. 个人数据保护文件系统加密与解密技术可以将个人隐私数据,如个人照片、视频和文档等进行加密,以防止被未经授权的用户访问和窃取。

只有输入正确的密钥,才能解密并查看这些数据。

2. 企业数据安全对于企业来说,文件系统加密与解密技术是保护重要商业机密和客户资料的重要手段。

通过对重要文件和数据库进行加密,即使遭受黑客攻击或数据泄露,也能保证数据的安全性,减少企业损失。

3. 云存储安全随着云计算和云存储的广泛应用,文件系统加密与解密技术也成为云存储安全的一项重要保障。

用户可以在上传文件到云存储平台之前对文件进行加密,确保只有用户自己能够解密和使用这些文件,从而更好地保护个人隐私。

三、文件系统加密与解密的未来发展趋势1. 多因素身份验证未来的文件系统加密与解密技术将进一步加强身份验证的安全性。

除了传统的用户名和密码,可能会引入生物识别技术、硬件设备认证等多种因素,提供更加可靠的身份验证机制。

2. 数据流加密除了对存储在磁盘上的文件加密,未来的文件系统加密与解密技术可能还将加强对数据流的加密。

无论是在数据传输过程中还是数据使用过程中,都将进行加密保护,确保数据的安全性。

3. 非侵入式加密当前的文件系统加密与解密技术大多需要在操作系统级别进行操作,而未来的发展趋势可能会倾向于非侵入式加密。

了解计算机操作系统的文件加密和解密

了解计算机操作系统的文件加密和解密

了解计算机操作系统的文件加密和解密计算机操作系统的文件加密和解密计算机操作系统中的文件加密和解密是一种常见的数据保护和安全措施,它能够保护文件的机密性,防止未经授权的访问和使用。

本文将介绍计算机操作系统中常见的文件加密和解密方法,以及其实际应用和相关技术。

一、文件加密的概念和原理文件加密是指通过一种算法或密钥将文件的明文转换为密文的过程。

其主要目的是保护文件的机密性,确保只有授权的用户才能解密和访问文件内容。

文件加密的原理是通过使用加密算法和密钥对文件进行加密操作,从而改变文件数据的形式,使其变得不可读或难以理解。

1.1 对称加密对称加密是一种常见的文件加密方法,它使用相同的密钥对文件进行加密和解密。

加密和解密过程中使用的密钥是相同的,这也是对称加密的名称来源。

对称加密算法包括DES、AES等,其加密强度和密钥长度决定了文件的安全性。

1.2 非对称加密非对称加密是另一种常见的文件加密方法,它使用一对密钥,即公钥和私钥。

公钥可以自由发布给其他用户,而私钥则由文件所有者保管。

文件加密过程中使用公钥进行加密,而解密过程则需要使用私钥进行解密。

非对称加密算法包括RSA等,其安全性依赖于公钥的机密性和私钥的保护。

二、常见的文件加密和解密方法计算机操作系统中有多种文件加密和解密方法可供选择,下面将介绍几种常见的方法。

2.1 操作系统自带的加密功能许多操作系统都提供了自带的文件加密和解密功能,例如Windows系统中的BitLocker和文件系统加密等。

这些功能通常易于使用,可以通过简单的设置和操作来对文件进行加密。

用户可以选择加密整个磁盘、文件夹或单个文件。

2.2 第三方加密软件除了操作系统自带的加密功能,还有很多第三方加密软件可供选择。

这些软件通常提供更多的加密选项和灵活性,可以根据用户的需求进行自定义设置。

常见的第三方加密软件包括TrueCrypt、VeraCrypt等。

2.3 文件压缩加密文件压缩加密是一种特殊的加密方法,它将文件进行压缩和加密同时进行。

文本文件加密与解密方法的技术原理与数据安全保护策略

文本文件加密与解密方法的技术原理与数据安全保护策略

文本文件加密与解密方法的技术原理与数据安全保护策略文本文件加密与解密是保护数据安全的常用手段之一。

本文将介绍文本文件加密与解密的技术原理,以及相关的数据安全保护策略。

一、文本文件加密技术原理文本文件加密是通过对文件内容进行转换或操作,使得未授权用户无法直接读取文件内容,从而实现文件的保密性。

常见的文本文件加密方法有对称加密和非对称加密。

1. 对称加密对称加密是一种加密方法,使用同一个密钥进行加密和解密。

在对称加密算法中,加密方将原文和密钥作为输入,通过特定的算法得到密文,并将密文传输给解密方。

解密方使用相同的密钥和算法进行解密,将密文还原为原文。

2. 非对称加密非对称加密使用一对密钥,分别是公钥和私钥。

公钥用于加密,私钥用于解密。

公钥是公开的,任何人都可以获得,而私钥只有密钥持有者拥有。

在非对称加密算法中,加密方使用接收方的公钥对原文进行加密,接收方使用自己的私钥进行解密。

二、文本文件解密技术原理文本文件解密是将加密过的文件恢复为原始的明文文件的过程。

根据文本文件加密方法的不同,解密方法也有所不同。

1. 对称加密的解密方法对称加密的解密方法就是使用相同的密钥和算法对密文进行解密。

只有持有正确密钥的解密方能够还原出原文。

2. 非对称加密的解密方法非对称加密的解密方法是使用私钥对密文进行解密。

只有私钥的持有者能够还原出原文。

三、数据安全保护策略除了文本文件加密与解密,还有其他数据安全保护策略可供选择,以综合提高数据的安全性。

1. 访问控制通过设置合适的权限,对敏感数据进行访问控制。

只有经过授权的用户才能够访问这些数据,保护数据不被未授权用户窃取或篡改。

2. 数据备份与恢复定期备份数据,并将备份数据存储在可靠的位置。

当数据丢失或受损时,可及时进行数据恢复,确保数据的完整性和可用性。

3. 加密算法的选择选择合适的加密算法和密钥长度,以提高数据的保密性和抗攻击能力。

目前,常用的加密算法有AES、RSA等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

using System;using System.IO;using System.Security.Cryptography;using System.Text;namespace BS.Utility{public class MySecurity{#region 构造函数public MySecurity(){}#endregion#region ( 0 )Rijndael算法private SymmetricAlgorithm mobjCryptoService= new RijndaelManaged(); private static string Key= "Guz(%&hj7x89H$yuBI0456FtmaT5&fvHUFCy76*h%(HilJ$lhj!y6&(*jkP87jH7 ";/// <summary>/// 获得密钥/// </summary>/// <returns> 密钥</returns>private byte[] GetLegalKey(){string sTemp = Key;mobjCryptoService.GenerateKey();byte[] bytTemp = mobjCryptoService.Key;int KeyLength = bytTemp.Length;if (sTemp.Length > KeyLength)sTemp = sTemp.Substring(0, KeyLength);else if (sTemp.Length < KeyLength)sTemp = sTemp.PadRight(KeyLength, ' ');return ASCIIEncoding.ASCII.GetBytes(sTemp);}/// <summary>/// 获得初始向量IV/// </summary>/// <returns> 初试向量IV </returns>{string sTemp = "E4ghj*Ghg7!rNIfb&95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7&!hg4ui%$hjk ";mobjCryptoService.GenerateIV();byte[] bytTemp = mobjCryptoService.IV;int IVLength = bytTemp.Length;if (sTemp.Length > IVLength)sTemp = sTemp.Substring(0, IVLength);else if (sTemp.Length < IVLength)sTemp = sTemp.PadRight(IVLength, ' ');return ASCIIEncoding.ASCII.GetBytes(sTemp);}/// <summary>/// 加密方法/// </summary>/// <param name= "Source "> 待加密的串</param>/// <returns> 经过加密的串</returns>public string RijndaelEncrypt(string Source){byte[] bytIn = UTF8Encoding.UTF8.GetBytes(Source);MemoryStream ms = new MemoryStream();mobjCryptoService.Key = GetLegalKey();mobjCryptoService.IV = GetLegalIV();ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor(); CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);cs.Write(bytIn, 0, bytIn.Length);cs.FlushFinalBlock();ms.Close();byte[] bytOut = ms.ToArray();return Convert.ToBase64String(bytOut);}/// <summary>/// 解密方法/// </summary>/// <param name= "Source "> 待解密的串</param>/// <returns> 经过解密的串</returns>public string RijndaelDecrypt(string Source){byte[] bytIn = Convert.FromBase64String(Source);MemoryStream ms = new MemoryStream(bytIn, 0, bytIn.Length);mobjCryptoService.Key = GetLegalKey();mobjCryptoService.IV = GetLegalIV();ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor(); CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);StreamReader sr = new StreamReader(cs);return sr.ReadToEnd();}#endregion#region ( 1 )Base64与UTF8混用public string BUEncrypt( string bb ){byte[] by=new byte[bb.Length];by=System.Text.Encoding.UTF8.GetBytes( bb );string r=Convert.ToBase64String( by );return r;}public string BUDecrypt( string aa ){byte[] by=Convert.FromBase64String( aa );string r=Encoding.UTF8.GetString( by );return r;}#endregion#region ( 2 )倒序加1与顺序减1(中文支持不好)public string AddEncrypt( string rs ) //倒序加1加密{byte[] by=new byte[rs.Length];for( int i=0;i <=rs.Length-1;i++ ){by[i]=( byte )( ( byte )rs[i]+1 );}rs= " ";for( int i=by.Length-1;i> =0;i-- ){rs+=( ( char )by[i] ).ToString( );}return rs;}public string AddDecrypt( string rs ) //顺序减1解码{byte[] by=new byte[rs.Length];for( int i=0;i <=rs.Length-1;i++ ){by[i]=( byte )( ( byte )rs[i]-1 );}rs= " ";for( int i=by.Length-1;i> =0;i-- ){rs+=( ( char )by[i] ).ToString( );}return rs;}#endregion#region ( 3 )固定密钥算法private Byte[] Iv64={11, 22, 33, 44, 55, 66, 77, 88}; private Byte[] byKey64={10, 20, 30, 40, 50, 60, 70, 80};//字符串加密public string SKeyEncrypt(string strText){try{DESCryptoServiceProvider des = new DESCryptoServiceProvider();Byte[] inputByteArray = Encoding.UTF8.GetBytes(strText);MemoryStream ms = new MemoryStream();CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byKey64, Iv64),CryptoStreamMode.Write);cs.Write(inputByteArray, 0, inputByteArray.Length);cs.FlushFinalBlock();return Convert.ToBase64String(ms.ToArray());}catch(Exception ex){return ex.Message;}}//字符串解密public string SKeyDecrypt(string strText){Byte[] inputByteArray = new byte[strText.Length];try{DESCryptoServiceProvider des = new DESCryptoServiceProvider();inputByteArray = Convert.FromBase64String(strText);MemoryStream ms = new MemoryStream();CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(byKey64, Iv64),CryptoStreamMode.Write);cs.Write(inputByteArray, 0, inputByteArray.Length);cs.FlushFinalBlock();System.Text.Encoding encoding = System.Text.Encoding.UTF8;return encoding.GetString(ms.ToArray());}catch(Exception ex){return ex.Message;}}#endregion#region ( 4 )DES算法public static byte[] DESKey = new byte[] {0x82, 0xBC, 0xA1, 0x6A, 0xF5, 0x87, 0x3B, 0xE6, 0x59, 0x6A, 0x32, 0x64, 0x7F, 0x3A, 0x2A, 0xBB, 0x2B, 0x68, 0xE2, 0x5F, 0x06, 0xFB, 0xB8, 0x2D, 0x67, 0xB 3, 0x55, 0x19, 0x4E, 0xB8, 0xBF, 0xDD };/// <summary>/// DES加密/// </summary>/// <param name= "strSource "> 待加密字串</param>/// <param name= "key "> 32位Key值</param>/// <returns> 加密后的字符串</returns>public string DESEncrypt(string strSource){return DESEncrypt(strSource, DESKey);}private string DESEncrypt(string strSource,byte[] key){SymmetricAlgorithm sa = Rijndael.Create();sa.Key = key;sa.Mode= CipherMode.ECB;sa.Padding = PaddingMode.Zeros;MemoryStream ms = new MemoryStream();CryptoStream cs = new CryptoStream(ms, sa.CreateEncryptor(), CryptoStreamMode.Write);byte[] byt = Encoding.Unicode.GetBytes(strSource);cs.Write(byt, 0, byt.Length);cs.FlushFinalBlock();cs.Close();return Convert.ToBase64String(ms.ToArray());}/// <summary>/// DES解密/// </summary>/// <param name= "strSource "> 待解密的字串</param>/// <param name= "key "> 32位Key值</param>/// <returns> 解密后的字符串</returns>public string DESDecrypt(string strSource){return DESDecrypt(strSource, DESKey);}private string DESDecrypt(string strSource,byte[] key){SymmetricAlgorithm sa = Rijndael.Create();sa.Key = key;sa.Mode = CipherMode.ECB;sa.Padding = PaddingMode.Zeros;ICryptoTransform ct = sa.CreateDecryptor();byte[] byt = Convert.FromBase64String(strSource);MemoryStream ms = new MemoryStream(byt);CryptoStream cs = new CryptoStream(ms, ct, CryptoStreamMode.Read);StreamReader sr = new StreamReader(cs, Encoding.Unicode);return sr.ReadToEnd();}#endregion}}public sealed class Secret{public static TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();public Secret(){//// TODO: 在此处添加构造函数逻辑//}/// 加密函数/// </summary>public static string EncryptString(string thisEncode){string encrypted;byte[] Code = ASCIIEncoding.ASCII.GetBytes(thisEncode);encrypted = Convert.ToBase64String(des.CreateEncryptor().TransformFinalBlock(Code, 0,Code.Length));return encrypted;}/// <summary>/// 解密函数/// </summary>public static string DecryptString(string thisDecode){string decrypted;byte[] Code = Convert.FromBase64String(thisDecode);decrypted = ASCIIEncoding.ASCII.GetString(des.CreateDecryptor().TransformFinalBlock(Code, 0,Code.Length));return decrypted;}//加密一个给定的字符串,strEncrKey是一个字符串做为加密算子public string DesEncrypt(string strText, string strEncrKey){if(strEncrKey == String.Empty){strEncrKey = "songxiud ";}byte[] byKey=null;byte[] IV= {0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF};try{byKey = System.Text.Encoding.UTF8.GetBytes(strEncrKey.Substring(0,strEncrKey.Length));DESCryptoServiceProvider des = new DESCryptoServiceProvider();byte[] inputByteArray = Encoding.UTF8.GetBytes(strText);MemoryStream ms = new MemoryStream();CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write) ;cs.Write(inputByteArray, 0, inputByteArray.Length);cs.FlushFinalBlock();return Convert.ToBase64String(ms.ToArray());}catch(System.Exception error){return "error: " +error.Message+ "\r ";}}//解密一个给定的字符串,sDecrKey是一个字符串做为解密算子,public string DesDecrypt(string strText,string sDecrKey){if(sDecrKey == " "){sDecrKey = "songxiud ";}byte[] byKey = null;byte[] IV= {0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF};try{byte[] inputByteArray = Convert.FromBase64String(strText);byKey = System.Text.Encoding.UTF8.GetBytes(sDecrKey.Substring(0,8));DESCryptoServiceProvider des = new DESCryptoServiceProvider();//inputByteArray = Convert.FromBase64String(strText);MemoryStream ms = new MemoryStream();CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write);cs.Write(inputByteArray, 0, inputByteArray.Length);cs.FlushFinalBlock();System.Text.Encoding encoding = new System.Text.UTF8Encoding();return encoding.GetString(ms.ToArray());}catch(System.Exception error){return "error: "+error.Message+ "\r ";}}//加密一个文件public void DesEncrypt(string m_InFilePath,string m_OutFilePath,string strEncrKey){byte[] byKey=null;byte[] IV= {0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF};try{byKey = System.Text.Encoding.UTF8.GetBytes(strEncrKey.Substring(0,8));FileStream fin = new FileStream(m_InFilePath, FileMode.Open, FileAccess.Read);FileStream fout = new FileStream(m_OutFilePath, FileMode.OpenOrCreate, FileAccess.Write);fout.SetLength(0);byte[] bin = new byte[100];long rdlen = 0;long totlen = fin.Length;int len;DES des = new DESCryptoServiceProvider();CryptoStream encStream = new CryptoStream(fout, des.CreateEncryptor(byKey, IV), CryptoStreamMode.Write);while(rdlen < totlen){len = fin.Read(bin, 0, 100);encStream.Write(bin, 0, len);rdlen = rdlen + len;}encStream.Close();fout.Close();fin.Close();}catch{}}//解密一个文件public void DesDecrypt(string m_InFilePath,string m_OutFilePath,string sDecrKey){byte[] byKey = null;byte[] IV= {0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF};try{byKey = System.Text.Encoding.UTF8.GetBytes(sDecrKey.Substring(0,8));FileStream fin = new FileStream(m_InFilePath, FileMode.Open, FileAccess.Read);FileStream fout = new FileStream(m_OutFilePath, FileMode.OpenOrCreate, FileAccess.Write);fout.SetLength(0);byte[] bin = new byte[100];long rdlen = 0;long totlen = fin.Length;int len;DES des = new DESCryptoServiceProvider();CryptoStream encStream = new CryptoStream(fout, des.CreateDecryptor(byKey, IV), CryptoStreamMode.Write);while(rdlen < totlen){len = fin.Read(bin, 0, 100);encStream.Write(bin, 0, len);rdlen = rdlen + len;}encStream.Close();fout.Close();fin.Close();}catch{}}//public string MD5Encrypt(string strText){MD5 md5 = new MD5CryptoServiceProvider();byte[] result = puteHash(System.Text.Encoding.Default.GetBytes(strText));return System.Text.Encoding.Default.GetString(result);}//public string MD5Decrypt(string strText){MD5 md5 = new MD5CryptoServiceProvider();byte[] result = md5.TransformFinalBlock(System.Text.Encoding.Default.GetBytes(strText),0,strText.Length);return System.Text.Encoding.Default.GetString(result);}}有用[0]板砖[0]#6楼级:#7楼级:#8楼级:#9楼级:#10级:。

相关文档
最新文档