文档库 最新最全的文档下载
当前位置:文档库 › ASPNET常用数据加密和解密方法汇总

ASPNET常用数据加密和解密方法汇总

ASPNET常用数据加密和解密方法汇总
ASPNET常用数据加密和解密方法汇总

应同事所邀把https://www.wendangku.net/doc/f27335675.html,(C#)常用数据加密和解密方法列出供大家参考,特此发布出来,希望对大家有点帮助。数据虽来源于网络,系仰天一笑悉心整理。

https://www.wendangku.net/doc/f27335675.html,(C#)常用数据加密和解密方法汇总

一、数据加密的概念

1、基本概念

2、基本功能

3、加密形式

二、数据加密的项目应用和学习

1、媒体加密:DRM

2、文件加密:文本加密、pdf、word

3、数据加密:https://www.wendangku.net/doc/f27335675.html,(C#)中的数据加密

4、硬件加密:加密狗

三、数据加密的发展趋势

四、网络数据加密算法分类

1、根本不考虑解密问题:MD5、

2、私用密钥加密:DES、AES

3、公用密钥加密:RSA

4、数字证书:

五、对称加密之DES加密和解密的讲解

六、非对称加密之RSA加密和解密的讲解

七、https://www.wendangku.net/doc/f27335675.html,(C#)常用加密类实例调用讲解及免费下载(源代码免费下载点击此处>>)

https://www.wendangku.net/doc/f27335675.html,(C#)常用数据加密和解密方法汇总

数据加密技术是网络中最基本的安全技术,主要是通过对网络中传输的信息进行数据加密来保障其安全性,这是一种主动安全防御策略,用很小的代价即可为信息提供相当大的安全保护。

一、加密的基本概念

"加密",是一种限制对网络上传输数据的访问权的技术。原始数据(也称为明文,plaintext)被加密设备(硬件或软件)和密钥加密而产生的经过编码的数据称为密文(ciphertext)。将密文还原为原

始明文的过程称为解密,它是加密的反向处理,但解密者必须利用相同类型的加密设备和密钥对密文进行解密。

加密的基本功能包括:

1. 防止不速之客查看机密的数据文件;

2. 防止机密数据被泄露或篡改;

3. 防止特权用户(如系统管理员)查看私人数据文件;

4. 使入侵者不能轻易地查找一个系统的文件。

数据加密是确保计算机网络安全的一种重要机制,虽然由于成本、技术和管理上的复杂性等原因,目前尚未在网络中普及,但数据加密的确是实现分布式系统和网络环境下数据安全的重要手段之一。

数据加密可在网络OSI七层协议(OSI是Open System Interconnect的缩写,意为开放式系统互联。国际标准组织(国际标准化组织)制定了OSI模型。这个模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。)的多层上实现、所以从加密技术应用的逻辑位置看,有三种方式:

①链路加密:通常把网络层以下的加密叫链路加密,主要用于保护通信节点间传输的数据,加解密由置于线路上的密码设备实现。根据传递的数据的同步方式又可分为同步通信加密和异步通信加密两种,同步通信加密又包含字节同步通信加密和位同步通信加密。

②节点加密:是对链路加密的改进。在协议传输层上进行加密,主要是对源节点和目标节点之间传输数据进行加密保护,与链路加密类似.只是加密算法要结合在依附于节点的加密模件中,克服了链路加密在节点处易遭非法存取的缺点。

③端对端加密:网络层以上的加密称为端对端加密。是面向网络层主体。对应用层的数据信息进行加密,易于用软件实现,且成本低,但密钥管理问题困难,主要适合大型网络系统中信息在多个发方和收方之间传输的情况。

二、数据加密的应用

1、媒体加密:DRM

2、文件加密:文本加密、pdf、word

3、数据加密:https://www.wendangku.net/doc/f27335675.html,(C#)中的数据加密

4、硬件加密:加密狗

三.加密技术发展趋势

①私用密钥加密技术与公开密钥加密技术相结合:鉴于两种密码体制加密的特点,在实际应用中可以采用折衷方案,即结合使用DES/IDEA和RSA,以DES为"内核",RSA为"外壳",对于网络中

传输的数据可用DES或IDEA加密,而加密用的密钥则用RSA加密传送,此种方法既保证了数据安全又提高了加密和解密的速度,这也是目前加密技术发展的新方向之一。

②寻求新算法:跳出以常见的迭代为基础的构造思路,脱离基于某些数学问题复杂性的构造方法。

如刘尊全先生提出的刘氏算法,是一种基于密钥的公开密钥体制,它采用了随机性原理构造加解密变换,并将其全部运算控制隐匿于密钥中,密钥长度可变。它是采用选取一定长度的分割来构造大

的搜索空间,从而实现一次非线性变换。此种加密算法加密强度高、速度快、计算开销低。

③加密最终将被集成到系统和网络中,例如IPV6协议就已有了内置加密的支持,在硬件方面,Intel公司正研制一种加密协处理器。它可以集成到微机的主极上。

四、加密技术的分类

加密类型可以简单地分为四种:

1. 根本不考虑解密问题;

2. 私用密钥加密技术:对称式加密(Symmetric Key Encryption):对称式加密方式对加密和解

密使用相同的密钥。通常,这种加密方式在应用中难以实施,因为用同一种安全方式共享密钥很难。如:RC4、RC2、DES 和AES 系列加密算法。

3. 公开密钥加密技术:非对称密钥加密(Asymmetric Key Encryption):非对称密钥加密使用一组公共/私人密钥系统,加密时使用一种密钥,解密时使用另一种密钥。公共密钥可以广泛的共享和透露。当需要用加密方式向服务器外部传送数据时,这种加密方式更方便。如:RSA

4. 数字证书。(Certificate):数字证书是一种非对称密钥加密,但是,一个组织可以使用证书并

通过数字签名将一组公钥和私钥与其拥有者相关联。

五、对称加密之DES加密与解密

一、对称加密

对称加密,是一种比较传统的加密方式,其加密运算、解密运算使用的是同样的密钥,信息的发送

者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码(称为对称密码)。因此,通信

双方都必须获得这把钥匙,并保持钥匙的秘密。

单钥密码系统的安全性依赖于以下两个因素:

第一、加密算法必须是足够强的,仅仅基于密文本身去解密信息在实践上是不可能的。

第二、加密方法的安全性依赖于密钥的秘密性,而不是算法的秘密性,因此,我们没有必要确保算

法的秘密性(事实上,现实中使用的很多单钥密码系统的算法都是公开的),但是我们一定要保证密钥的秘密性。

DES(Data Encryption Standard)和TripleDES是对称加密的两种实现。

DES和TripleDES基本算法一致,只是TripleDES算法提供的key位数更多,加密可靠性更高。DES使用的密钥key为8字节,则始向量IV也是8字节。

TripleDES使用24字节的key,则始向量IV也是8字节。

两种算法都是以8字节为一个块进行加密,一个数据块一个数据块的加密,一个8字节的明文加密后的密文也是8字节。如果明文长度不为8字节的整数倍,添加值为0的字节凑满8字节整数倍。所以加密后的密文长度一定为8字节的整数倍。

二、加密解密过程

Figure 1. DES加密解密过程

上图是整个DES和TripleDES算法的加密解密过程,下面以TripleDES为例,结合dotnet分析加密解密的各个步骤,并给出相关实现代码。

1、生成key和IV

System.Security.Cryptography. TripleDESCryptoServiceProvider类是dotnet中实现TripleDES算法的主要的类。

TripleDESCryptoServiceProvider类只有一个构造方法TripleDESCryptoServiceProvider(),这个方法把一些属性则始化:

KeySize(加密密钥长度,以位为单位)= 192(24字节)

BlockSize(加密处理的数据块大小,以位为单位)= 64(8字节)

FeedbackSize(加密数据块后返回的数据大小,以位为单位)= 64(8字节)

TripleDESCryptoServiceProvider构造方法同时会则始化一组随机的key和IV。

默认的TripleDESCryptoServiceProvider的key为24字节,IV为8字节,加密数据块为8字节。

生成key和IV的代码很简单:

TripleDESCryptoServiceProvider tDESalg = new TripleDESCryptoServiceProvider(); byte[] keyArray = tDESalg.Key;

byte[] IVArray = tDESalg.IV;

生成的key和IV在加密过程和解密过程都要使用。

2、字符串明文转成某一代码页对应的编码字节流

待加密的数据可能有两种形式,一种是二进制的数据,本身就是一组字节流,这样的数据可以跳过

这一步,直接进入加密步骤。还有一种情况是字符串数据,字符串中同样的字符使用不同的代码页

会生成不同的字节码,所以从字符串到字节流的转换是需要指定使用何种编码的。在解密之后,要

从字节流转换到字符串就要使用相同的代码页解码,否则就会出现乱码。

// 待加密的字符串

string plainTextString = "Here is some data to encrypt. 这里是一些要加密的数据。";

// 使用utf-8编码(也可以使用其它的编码)

Encoding sEncoding = Encoding.GetEncoding("utf-8");

// 把字符串明文转换成utf-8编码的字节流

byte[] plainTextArray = sEncoding.GetBytes(plainTextString);

3、加密操作

加密的原料是明文字节流,TripleDES算法对字节流进行加密,返回的是加密后的字节流。同时要给定加密使用的key和IV。

// 把字符串明文转换成utf-8编码的字节流

byte[] plainTextArray = sEncoding.GetBytes(plainTextString);

public static byte[] EncryptString(byte[] plainTextArray, byte[] Key, byte[] IV) {

// 建立一个MemoryStream,这里面存放加密后的数据流

MemoryStream mStream = new MemoryStream();

// 使用MemoryStream 和key、IV新建一个CryptoStream 对象

CryptoStream cStream = new CryptoStream(mStream,

new TripleDESCryptoServiceProvider().CreateEncryptor(Key, IV),

CryptoStreamMode.Write);

// 将加密后的字节流写入到MemoryStream

cStream.Write(plainTextArray, 0, plainTextArray.Length);

//把缓冲区中的最后状态更新到MemoryStream,并清除cStream的缓存区

cStream.FlushFinalBlock();

// 把解密后的数据流转成字节流

byte[] ret = mStream.ToArray();

// 关闭两个streams.

cStream.Close();

mStream.Close();

return ret;

}

4、解密操作

解密操作解密上面步骤生成的密文byte[],需要使用到加密步骤使用的同一组Key和IV。

// 调用解密方法,返回已解密数据的byte[]

byte[] finalPlainTextArray = DecryptTextFromMemory(Data, keyArray, IVArray); public static byte[] DecryptTextFromMemory(byte[] EncryptedDataArray, byte[] Key, byte[] IV)

{

// 建立一个MemoryStream,这里面存放加密后的数据流

MemoryStream msDecrypt = new MemoryStream(EncryptedDataArray);

// 使用MemoryStream 和key、IV新建一个CryptoStream 对象

CryptoStream csDecrypt = new CryptoStream(msDecrypt,

new TripleDESCryptoServiceProvider().CreateDecryptor(Key, IV),

CryptoStreamMode.Read);

// 根据密文byte[]的长度(可能比加密前的明文长),新建一个存放解密后明文的byte[]

byte[] DecryptDataArray = new byte[EncryptedDataArray.Length];

// 把解密后的数据读入到DecryptDataArray

csDecrypt.Read(DecryptDataArray, 0, DecryptDataArray.Length);

msDecrypt.Close();

csDecrypt.Close();

return DecryptDataArray;

}

有一点需要注意,DES加密是以数据块为单位加密的,8个字节一个数据块,如果待加密明byte[]的长度不是8字节的整数倍,算法先用值为“0”的byte补足8个字节,然后进行加密。所以加密后的密文长度一定是8的整数倍。这样的密文解密后如果补了0值的byte,则解密后这些0值的byte依然存在。比如上例中要加密的明文是:

“Here is some data to encrypt. 这里是一些要加密的数据。”

转成明文byte[]后是66个字节,DES算法就会补上6个0值的byte,补到72个字节。这样加密后再解密回来的密文byte[]解码后的字符串就是这样的:

"Here is some data to encrypt. 这里是一些要加密的数据。¥0¥0¥0¥0¥0¥0"

5、从编码字节流转成字符串明文

// 使用前面定义的Encoding,utf-8的编码把byte[]转成字符串

plainTextString = sEncoding.GetString(finalPlainTextArray);

六、非对称加密之RSA加密和解密的讲解

RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其

困难,因此可以将乘积公开作为加密密钥。RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。

RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题。

RSA的缺点主要有:

A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。

B)分组长度太大,为保证安全性,n 至少也要600bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个

长度还在增加,不利于数据格式的标准化。目前,SET(Secure Electronic Transaction)协议中要求CA采用2048bits长的密钥,其他实体使用1024比特的密钥。C)RSA密钥长度随着保密级别提高,增加很快。下表列出了对同一安全级别所对应的密钥长度。

保密级别对称密钥长度(bit)RSA密钥长度(bit)ECC密钥长度(bit)保密年限

80 80 1024 160 2010

112 112 2048 224 2030

128 128 3072 256 2040

192 192 7680 384 2080

256 256 15360 512 2120

这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理

解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman。早在1973年,英国国家通信总局的数学家Clifford Cocks就发现了类似的算法。但是他的发现被列为绝密,直到1998年才公诸于世。

RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。

RSA的算法涉及三个参数,n、e1、e2。

其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。

e1和e2是一对相关的值,e1可以仸意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(e2*e1)mod((p-1)*(q-1))=1。

(n及e1),(n及e2)就是密钥对。

RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e1 mod n;B=A^e2 mod n;

e1和e2可以互换使用,即:

A=B^e2 mod n;B=A^e1 mod n;

C#代码实现

需引用using System.Security.Cryptography;

///

/// RSA加密

///

///

///

///

public static string RSAEncrypt(string publickey, string content)

{

publickey =

@"5m9m14XH3oqLJ8bNGw9e4rGpXpcktv9MSkHSVFVMj Hbfv+SJ5v0ubqQxa5YjLN4vc49z7SVju8s0X4gZ6AzZTn06jzWOgyPRV54Q4I0DCYad WW4Ze3e+BOtwgVU1Og3qHKn8vygoj40J6U85Z/PTJu3hN1m75Zr195ju7g9v4Hk=< /Modulus>AQAB";

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();

byte[] cipherbytes;

rsa.FromXmlString(publickey);

cipherbytes = rsa.Encrypt(Encoding.UTF8.GetBytes(content), false);

return Convert.ToBase64String(cipherbytes);

}

///

/// RSA解密

///

///

///

///

public static string RSADecrypt(string privatekey, string content)

{

privatekey =

@"5m9m14XH3oqLJ8bNGw9e4rGpXpcktv9MSkHSVFVMj Hbfv+SJ5v0ubqQxa5YjLN4vc49z7SVju8s0X4gZ6AzZTn06jzWOgyPRV54Q4I0DCYad WW4Ze3e+BOtwgVU1Og3qHKn8vygoj40J6U85Z/PTJu3hN1m75Zr195ju7g9v4Hk=< /Modulus>AQAB

/hf2dnK7rNfl3lbqghWcpFdu778hUpIE BixCDL5WiBtpkZdpSw90aERmHJYaW2RGvGRi6zSftLh00KHsPcNUMw==

6 Cn/jOLrPapDTEp1Fkq+uz++1Do0eeX7HYqi9rY29CqShzCeI7LEYOoSwYuAJ3xA/DuCd QENPSoJ9KFbO4Wsow==ga1rHIJro8e/yhxjrKYo/nqc5ICQGhrpMNlPkD9n 3CjZVPOISkWF7FzUHEzDANeJfkZhcZa21z24aG3rKo5Qnw==MNGsCB8

rYlMsRZ2ek2pyQwO7h/sZT8y5ilO9wu08Dwnot/7UMiOEQfDWstY3w5XQQHnvC9WFy CfP4h4QBissyw==EG02S7SADhH1EVT9DD0Z62Y0uY7gIYvxX/uq +IzKSCwB8M2G7Qv9xgZQaQlLpCaeKbux3Y59hHM+KpamGL19Kg==< D>vmaYHEbPAgOJvaEXQl+t8DQKFT1fudEysTy31LTyXjGu6XiltXXHUuZaa2IPyHgBz0 Nd7znwsW/S44iql0Fen1kzKioEL3svANui63O3o5xdDeExVM6zOf1wUUh/oldovPweChy oAdMtUzgvCbJk1sYDJf++Nr0FeNW1RB1XG30=";

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();

byte[] cipherbytes;

rsa.FromXmlString(privatekey);

cipherbytes = rsa.Decrypt(Convert.FromBase64String(content), false);

return Encoding.UTF8.GetString(cipherbytes);

}

七、https://www.wendangku.net/doc/f27335675.html,(C#)常用加密类调用的讲解

1、C#常用加密解密类库代码如下:

///

/// MD5 加密静态方法

///

/// 待加密的密文

/// returns

public static string MD5Encrypt(string EncryptString)

{

if (string.IsNullOrEmpty(EncryptString)) { throw (new Exception("密文不得为空")); }

MD5 m_ClassMD5 = new MD5CryptoServiceProvider();

string m_strEncrypt = "";

try

{

m_strEncrypt =

BitConverter.ToString(m_https://www.wendangku.net/doc/f27335675.html,puteHash(Encoding.Default.GetBytes(Encry ptString))).Replace("-", "");

}

catch (ArgumentException ex) { throw ex; }

catch (CryptographicException ex) { throw ex; }

catch (Exception ex) { throw ex; }

finally { m_ClassMD5.Clear(); }

return m_strEncrypt;

}

///

/// DES 加密(数据加密标准,速度较快,适用于加密大量数据的场合)

///

/// 待加密的密文

/// 加密的密钥

/// returns

public static string DESEncrypt(string EncryptString, string EncryptKey)

{

if (string.IsNullOrEmpty(EncryptString)) { throw (new Exception("密文不得为空")); }

if (string.IsNullOrEmpty(EncryptKey)) { throw (new Exception("密钥不得为空")); }

if (EncryptKey.Length != 8) { throw (new Exception("密钥必须为8位")); }

byte[] m_btIV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };

string m_strEncrypt = "";

DESCryptoServiceProvider m_DESProvider = new DESCryptoServiceProvider();

try

{

byte[] m_btEncryptString = Encoding.Default.GetBytes(EncryptString);

MemoryStream m_stream = new MemoryStream();

CryptoStream m_cstream = new CryptoStream(m_stream,

m_DESProvider.CreateEncryptor(Encoding.Default.GetBytes(EncryptKey), m_btIV), CryptoStreamMode.Write);

m_cstream.Write(m_btEncryptString, 0, m_btEncryptString.Length);

m_cstream.FlushFinalBlock();

m_strEncrypt = Convert.ToBase64String(m_stream.ToArray());

m_stream.Close(); m_stream.Dispose();

m_cstream.Close(); m_cstream.Dispose();

}

catch (IOException ex) { throw ex; }

catch (CryptographicException ex) { throw ex; }

catch (ArgumentException ex) { throw ex; }

catch (Exception ex) { throw ex; }

finally { m_DESProvider.Clear(); }

return m_strEncrypt;

}

///

/// DES 解密(数据加密标准,速度较快,适用于加密大量数据的场合)

///

/// 待解密的密文

/// 解密的密钥

/// returns

public static string DESDecrypt(string DecryptString, string DecryptKey)

{

if (string.IsNullOrEmpty(DecryptString)) { throw (new Exception("密文不得为空")); }

if (string.IsNullOrEmpty(DecryptKey)) { throw (new Exception("密钥不得为空")); }

if (DecryptKey.Length != 8) { throw (new Exception("密钥必须为8位")); }

byte[] m_btIV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };

string m_strDecrypt = "";

DESCryptoServiceProvider m_DESProvider = new DESCryptoServiceProvider();

try

{

byte[] m_btDecryptString = Convert.FromBase64String(DecryptString);

MemoryStream m_stream = new MemoryStream();

CryptoStream m_cstream = new CryptoStream(m_stream,

m_DESProvider.CreateDecryptor(Encoding.Default.GetBytes(DecryptKey), m_btIV), CryptoStreamMode.Write);

m_cstream.Write(m_btDecryptString, 0, m_btDecryptString.Length);

m_cstream.FlushFinalBlock();

m_strDecrypt = Encoding.Default.GetString(m_stream.ToArray());

m_stream.Close(); m_stream.Dispose();

m_cstream.Close(); m_cstream.Dispose();

}

catch (IOException ex) { throw ex; }

catch (CryptographicException ex) { throw ex; }

catch (ArgumentException ex) { throw ex; }

catch (Exception ex) { throw ex; }

finally { m_DESProvider.Clear(); }

return m_strDecrypt;

}

///

/// RC2 加密(用变长密钥对大量数据进行加密)

///

/// 待加密密文

/// 加密密钥

/// returns

public static string RC2Encrypt(string EncryptString, string EncryptKey)

{

if (string.IsNullOrEmpty(EncryptString)) { throw (new Exception("密文不得为空")); }

if (string.IsNullOrEmpty(EncryptKey)) { throw (new Exception("密钥不得为空")); }

if (EncryptKey.Length < 5 || EncryptKey.Length > 16) { throw (new Exception("密钥必须为5-16位")); }

string m_strEncrypt = "";

byte[] m_btIV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };

RC2CryptoServiceProvider m_RC2Provider = new

RC2CryptoServiceProvider();

try

{

byte[] m_btEncryptString = Encoding.Default.GetBytes(EncryptString);

MemoryStream m_stream = new MemoryStream();

CryptoStream m_cstream = new CryptoStream(m_stream,

m_RC2Provider.CreateEncryptor(Encoding.Default.GetBytes(EncryptKey), m_btIV), CryptoStreamMode.Write);

m_cstream.Write(m_btEncryptString, 0, m_btEncryptString.Length);

m_cstream.FlushFinalBlock();

m_strEncrypt = Convert.ToBase64String(m_stream.ToArray());

m_stream.Close(); m_stream.Dispose();

m_cstream.Close(); m_cstream.Dispose();

}

catch (IOException ex) { throw ex; }

catch (CryptographicException ex) { throw ex; }

catch (ArgumentException ex) { throw ex; }

catch (Exception ex) { throw ex; }

finally { m_RC2Provider.Clear(); }

return m_strEncrypt;

}

///

/// RC2 解密(用变长密钥对大量数据进行加密)

///

/// 待解密密文

/// 解密密钥

/// returns

public static string RC2Decrypt(string DecryptString, string DecryptKey)

{

if (string.IsNullOrEmpty(DecryptString)) { throw (new Exception("密文不得为空")); }

if (string.IsNullOrEmpty(DecryptKey)) { throw (new Exception("密钥不得为空")); }

if (DecryptKey.Length < 5 || DecryptKey.Length > 16) { throw (new Exception("密钥必须为5-16位")); }

byte[] m_btIV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };

string m_strDecrypt = "";

RC2CryptoServiceProvider m_RC2Provider = new

RC2CryptoServiceProvider();

try

{

byte[] m_btDecryptString = Convert.FromBase64String(DecryptString);

MemoryStream m_stream = new MemoryStream();

CryptoStream m_cstream = new CryptoStream(m_stream,

m_RC2Provider.CreateDecryptor(Encoding.Default.GetBytes(DecryptKey), m_btIV), CryptoStreamMode.Write);

m_cstream.Write(m_btDecryptString, 0, m_btDecryptString.Length);

m_cstream.FlushFinalBlock();

m_strDecrypt = Encoding.Default.GetString(m_stream.ToArray());

m_stream.Close(); m_stream.Dispose();

m_cstream.Close(); m_cstream.Dispose();

}

catch (IOException ex) { throw ex; }

catch (CryptographicException ex) { throw ex; }

catch (ArgumentException ex) { throw ex; }

catch (Exception ex) { throw ex; }

finally { m_RC2Provider.Clear(); }

return m_strDecrypt;

}

///

/// 3DES 加密(基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高)

///

/// 待加密密文

/// 密钥一

/// 密钥二

/// 密钥三

/// returns

public static string DES3Encrypt(string EncryptString, string EncryptKey1, string EncryptKey2, string EncryptKey3)

{

string m_strEncrypt = "";

try

{

m_strEncrypt = DESEncrypt(EncryptString, EncryptKey3);

m_strEncrypt = DESEncrypt(m_strEncrypt, EncryptKey2);

m_strEncrypt = DESEncrypt(m_strEncrypt, EncryptKey1);

}

catch (Exception ex) { throw ex; }

return m_strEncrypt;

}

///

/// 3DES 解密(基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高)

///

/// 待解密密文

/// 密钥一

/// 密钥二

/// 密钥三

/// returns

public static string DES3Decrypt(string DecryptString, string DecryptKey1, string DecryptKey2, string DecryptKey3)

{

string m_strDecrypt = "";

try

{

m_strDecrypt = DESDecrypt(DecryptString, DecryptKey1);

m_strDecrypt = DESDecrypt(m_strDecrypt, DecryptKey2);

m_strDecrypt = DESDecrypt(m_strDecrypt, DecryptKey3);

}

catch (Exception ex) { throw ex; }

return m_strDecrypt;

}

///

/// AES 加密(高级加密标准,是下一代的加密算法标准,速度快,安全级别高,目前AES 标准的一个实现是Rijndael 算法)

///

/// 待加密密文

/// 加密密钥

///

关于数据加密的重要性及各种方法的区别

关于数据加密的重要性及各种方法的区别 文件加密的重要性: 有些同学以为,自己既不是影视明星,又不是恐怖分子,不需要采用文件加密之类的工具,那就大错特错啦。俺大致介绍一下,文件加密的用武之地。 1、防范失窃 这年头,笔记本电脑、平板电脑越来越流行,而这类便捷的移动设备,也增加了丢失的概率。一旦你的移动设备丢失,存储在上面的个人敏感信息就有暴露的风险。比如用浏览器保存的登录口令、邮件客户端存储的私人邮件、等等。如果你的敏感信息是加密的,失窃后的风险就大大降低。 2、保存个人隐私 很多人的家用电脑,都是几个家庭成员共用的。你可能会有一些个人隐私的信息,不希望被其他家庭成员看到。比如你上网下载的毛片、艳照、等,多半不希望被你父母或子女看到。这时候,文件加密就可以防止你的隐私外泄。 3、加密备份数据 很多同学把电脑中的数据备份到移动硬盘上。有些同学觉得放家里的移动硬盘还不保险。正好近2年,"云"的概念炒得很热。所以,那些忧患意识很强的同学,就开始考虑用"云存储"(俗称网盘)来做异地备份。 一旦你把数据备份到"云端",就得考虑加密问题了。假如你用的是国内公司提供的网盘,那你一定得小心。如果你把数据备份到国外的网盘,也未必安全。这不,连大名鼎鼎的Dropbox,最近都曝出数据安全的丑闻。 加密的方法:、 使用压缩软件 发现很多人(尤其是菜鸟用户),首先想到的加密方式,就是把敏感文件用压缩工具(比如WinRAR,7zip、等)压缩一下,并设置一个口令。 优点: 1)、不需要额外安装软件 压缩软件几乎是装机必备的软件。因此,使用这种方法,多半不需要额外安装其它软件。 2)、便于备份 可以把压缩文件copy到任何地方,只要知道口令就能打开。 缺点: 1)、加密强度没保证 压缩软件的强项是压缩,而不是加密。有些压缩软件,本身的加密强度不够,还有些压

图文讲解PDF文件怎样解密

PDF文件怎样解密 作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。 PDF文件是可以加密的,有时候我们从网络上下载的文件没有打开密码无法打开或者想打印但是文件有权限密码,有些网络上的书籍还带有数字证书等等,平时阅读使用的时候极为不方便,那么我们能不能去掉这些烦人的密码呢?下面我就将一些关于PDF文件解密方面的东东~~~★★★★★ 工具/原料 ?Advanced PDF Password Recovery 5.0 ?PDF Password Remover 3.0 ?PDF Unlocker ?Foxit PDF editor 2.2 (PJ版) 步骤/方法 1.解密需要打开口令的PDF文件 破解这类PDF加密的软件还是比较多的,不过效果都不甚理想,因为这类软件基本上都是采用暴力破解的方法,就是穷举法,如果你知道密码的部分内容也可以通过字典法来进行破解 反正基本上都差不多,这里我用 Advanced PDF Password Recovery 5.0 这款举例。 软件的运行界面如下:

最上面一排是操作按键,中间一块是设置区 下面一块是信息区。 我们测试一个比较简单的3位纯数字加密的PDF文件,预先知道密码是123 基本设计如下: 攻击类型设置为暴力,范围选项我们勾选所有数字(先测试纯数字的),开始于 0,结束于 999999 (长度选项卡里面设置最大长度口令字符数为6字符,和999999对应,目的是尝试0~999999的所有六位数的纯数字) 如果解密成功就会出现如下界面:

我们可以看一下,这个文件的密码是123 破解时间是19ms ,说明简单的密码破解还是比较轻松的。 如果是比较复杂的或者长度比较长的密码(特别是一些网站喜欢用网站的网址作为密码),那么用这个方法几乎是无法破解的,如果遇上这样子的文件,我劝大家还是不要浪费时间,洗洗睡吧 ~~~HOHO~ 1.文件能够打开,但是被限制了权限的PDF文件的解密 这类的文件是最常见的,特别是网站发布的一些文件资料等等,都是加了权限密码限制我们复制、打印、转换等等,这类的加密方式还是比较好破解。 此类的加密,用adobe reader或者adobe acrobat打开后在标题栏的上面会有(已加密) 字样:

BitLocker 驱动器加密

了解有关BitLocker驱动器加密的更多信息 BitLocker驱动器加密可为丢失或被盗的操作系统驱动器、固定数据驱动器和可移动数据驱动器提供保护。BitLocker是通过以下方法来提供保护的:加密驱动器的内容并要求用户对其凭据进行身份验证来访问该信息。在安装Windows 的驱动器上,BitLocker使用受信任的平台模块(TPM) 来检测计算机的关键启动进程是否已被篡改。另外,可能要求用户提供PIN 或启动密钥才能访问驱动器数据。在固定数据驱动器和可移动数据驱动器上,用户可以通过使用密码、通过使用智能卡或通过自动解锁驱动器来访问受BitLocker保护的驱动器。 操作系统驱动器的BitLocker专门用于处理具有兼容TPM 安全硬件和BIOS 的系统。若要与BitLocker兼容,计算机制造商必须遵守受信任计算组(TCG) 定义的标准。有关TCG 的详细信息,请访问受信任计算组网站(https://www.wendangku.net/doc/f27335675.html,/fwlink/?LinkId=67440)。 启用BitLocker BitLocker安装向导可以从控制面板或Windows 资源管理器启动,它用于在计算机上安装的固定数据驱动器或可移动数据驱动器上启用BitLocker,或者用于在具有兼容TPM 的计算机的操作系统驱动器上启用BitLocker。如果希望在不带TPM 的计算机的操作系统驱动器上启用BitLocker,或者使用其他BitLocker功能和选项,则可以修改BitLocker组策略设置,这些设置控制通过BitLocker安装向导可以访问哪些功能。 在带有兼容TPM 的计算机上,可以使用以下四种方式解锁受BitLocker保护的操作系统驱动器: 仅TPM。使用“仅TPM”验证不要求与用户进行任何交互来解密驱动器及提供对驱动器的访问。如果TPM 验证成功,则用户登录体验与标准登录相同。如果缺少或已更改TPM,或者如果TPM 检测到关键的操作系统启动文件发生更改,则BitLocker将进入其恢复模式,需要恢复密码才能重新获得对数据的访问权限。 有启动密钥的TPM。除TPM 提供的保护之外,会将部分加密密钥存储在USB 闪存驱动器中。这称为启动密钥。没有启动密钥将无法访问加密卷上的数据。 有PIN 的TPM。除TPM 提供的保护之外,BitLocker还要求用户输入个人标识号(PIN)。如果不输入PIN,将无法访问加密卷上的数据。 有启动密钥和PIN 的TPM。此选项仅可以通过使用Manage-bde命令行工具进行配置。除TPM 提供的核心组件保护之外,会将加密密钥的一部分存储在USB 闪存驱动器上,并且需要一个PIN 来验证用户对TPM 的访问权限。这会提供多重身份验证,这样,如果USB 密钥丢失或被盗,因为还需要正确的PIN,所以不能使用USB 密钥访问驱动器。 注意 建议始终将默认的Windows TPM 驱动程序与BitLocker一起使用。如果安装了非Microsoft TPM 驱动程序,则它可能会阻止加载默认TPM 驱动程序并导致BitLocker报告计算机上不存在TPM。在这种情况下,BitLocker将不能使用TPM。如果将组策略设置配置为要求将BitLocker与TPM 一起使用,则直到删除非Microsoft 驱动程序,才能启用BitLocker。

数据加密方案

数据加密方案

一、什么是数据加密 1、数据加密的定义 数据加密又称密码学,它是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。数据加密目前仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。 2、加密方式分类 数据加密技术要求只有在指定的用户或网络下,才能解除密码而获得原来的数据,这就需要给数据发送方和接受方以一些特殊的信息用于加解密,这就是所谓的密钥。其密钥的值是从大量的随机数中选取的。按加密算法分为对称密钥和非对称密钥两种。 对称密钥:加密和解密时使用同一个密钥,即同一个算法。如DES和MIT的Kerberos算法。单密钥是最简单方式,通信双方必须交换彼此密钥,当需给对方发信息时,用自己的加密密钥进行加密,而在接收方收到数据后,用对方所给的密钥进行解密。当一个文本要加密传送时,该文本用密钥加密构成密文,密文在信道上传送,收到密文后用同一个密钥将密文解出来,形成普通文体供阅读。在对称密钥中,密钥的管理极为重要,一旦密钥丢失,密文将无密可保。这种

方式在与多方通信时因为需要保存很多密钥而变得很复杂,而且密钥本身的安全就是一个问题。 对称加密 对称密钥是最古老的,一般说“密电码”采用的就是对称密钥。由于对称密钥运算量小、速度快、安全强度高,因而如今仍广泛被采用。 DES是一种数据分组的加密算法,它将数据分成长度为64位的数据块,其中8位用作奇偶校验,剩余的56位作为密码的长度。第一步将原文进行置换,得到64位的杂乱无章的数据组;第二步将其分成均等两段;第三步用加密函数进行变换,并在给定的密钥参数条件下,进行多次迭代而得到加密密文。 非对称密钥:非对称密钥由于两个密钥(加密密钥和解密密钥)各不相同,因而可以将一个密钥公开,而将另一个密钥保密,同样可以起到加密的作用。

实验五文件数据加密与解密

实验五文件数据加密与解密 1.实验目的 (1)练习数据加密与解密的实现方法。 (2)练习将加密数据保存到文件中的方法。 (3)练习从文件中读取加密后的数据的方法。 2.建议用时 建议用4小时完成本实验,或者根据自己的理解情况调整实际需要的时间。 3.实验内容 设计一个Windows应用程序,实现下面的功能。 (1)使用某种加密算法加密窗体上TextBox控件中显示的文字,然后将其保存到文本文件MyData.txt中。 (2)程序运行时,首先自动判断加密后的文件是否存在,如果文件存在,则根据加密密钥对加密内容进行解密,并将解密后的结果显示在窗体的TextBox控件中。 4.实验步骤提示 要顺利完成本实验,需要解决4个问题:一是采用哪种算法进行加密;二是如何将加密后的数据保存到文件中;三是如何保存加密密钥;四是如何将加密后的内容读取出来并进行解密处理。 由于只有知道加密密钥才能进行解密,而实验中要求程序开始运行时就判断是否有加密后的文件,并对文件进行解密。因此如何在加密的同时将加密密钥也保存下来是完成本实验的关键。 这个实验的实现方法有多种,参考解答仅仅是其中比较简单的一种。具体实现方法可以按照下面的步骤进行。 (1)创建一个名为DataEncrypt的Windows应用程序,在【解决方案资源管理器】中,将Form1.cs换名为FormMain.cs。 (2)从【工具箱】中向设计窗体拖放一个TextBox控件、一个【保存】按钮和一个【打开】按钮。界面设计效果如图1-15所示。 图5-1 界面设计 (3)在【保存】按钮的Click事件代码中,创建MyData.txt文件,先将加密密钥写入文件中,然后再写入加密后的文本内容。参考代码如下。 private void buttonSave_Click(object sender, EventArgs e) { TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();

bitlocker怎么用

bitlocker怎么用?用法?解锁? (2010-02-25 07:23:37) Bitlocker,这个组组件主要是在本地用软硬结合的方式来保护我们硬盘上的数据的。现在电脑的丢失已经是很常见的事情了,有时候连放在办公室的电脑都有可能会被偷走,就更不要说笔记本电脑和平板电脑了。而如果你的电脑中存放着很敏感的资料,例如你工作单位的一些机密、你的银行账户等等这些,如果被不怀好意的人拿到的话后果可能是致命的,不知道大家有没有参加过关于这个Bitlocker的Webcast,里面就提到几个案例,因为存放着敏感资料的笔记本被盗以后导致一个公司的商业机密泄露到了它的竞争对手手中而面临倒闭,也有个人资料泄露以后导致隐私被公开或者受到要挟。而 Windows XP的账户密码是非常脆弱的,懂一 点专业技术的人都能在几分钟之内破解掉它,拿到计算机里面的数据,这种攻击方法称之为离线式攻击,也就是攻击者直接接触你的电脑来实施入侵行为,所以如何保护我们硬盘中的数据特别是对笔记本电脑这类更容易丢失的电脑来说显得尤为重要。Bitlocker也就是在这样一种局面下诞生了,它采用了硬件和软件相结合的方法来保护我们硬盘中的数据。 启用了Bitlocker以后会生成两个密钥:一个存放于引导分区中;另外一个存放在主板上的一个名叫 TPM的芯片里,在计算机加电的时候首先是TPM最先加载,他会和引导区中的密钥进行对比验证,通过了以后才会加载BOIS完成计算机启动过程。而如果这当中任何一个不匹配的话,比如有对这个TPM芯片作了手脚,或者是把硬盘拆下来放到别的机器中,Windows Vista将会拒绝掉密钥的释放,系统将无法启动。这个加密机制我可以毫不夸张地告诉大家,在各位的有生之年是它绝对是安全可靠的,不会被破解掉。当然,对于一些可能存在的事情,比如主板坏啦,或者需要把磁盘移动到一台新的计算机中的时候,Bitlocker也提供了恢复功能,就是在加密的时候 Bitlocker会给出一个48位的恢复密钥,要求用户在做加密的时候一定要妥善的保管这个密钥,否则当遇到上面提到的这些情况时你将永远无法取回那块硬盘中的资料了。再说TPM芯片,这是比较新的一种硬件芯片,在比较新的主板中已经有了,我也在市场上看了一下,发现已经有部分的主板和笔记本电脑都包含了这个芯片,但是包含这个芯片的台式机主板还是比较少,但是在不久这种芯片将会得到普及。 Bitlocker 只能加密系统分区也就是Windows Vista所在的分区,那么其他分区的数据难道就得不到保护了吗?我们说其他分区的数据也是可以保护的,至于方法就是利用在Windows XP中就已经存在EFS,这个是一种基于用户账户的文件保护机制,也就是说它使用用户的计算机帐户对该用户的数据进行加密,在Windows XP中,使用过EFS的用户一定知道,EFS的加密是非常有效的,并且在使用的时候完全没有任何的影响,用户完全感觉不到它的存在,然而当换一个用户登录操作系统想要访问另一个账户的被加密的文档时候肯定是不可能的。但是之所以这套加密机制在Windows XP 中有如形同虚设的原因就是前面提到的,Windows XP的帐户密码可以在几分钟之内被破解掉,因此EFS也就失去作用了,但是在Windows Vista中有Bitlocker来保护我们的系统分区,也就是等于保护了用户账户,攻击者在拿不到这些账户的时候是也就根本不可能拿到那些在其他分区中被EFS 所保护的任何数据了。因此有了这套机制的保护,我们的硬盘就是被FBI拿到,他们拿硬盘中的数据也是没有任何办法的。 ------------------------------------- BitLocker驱动器加密它是在Windows Vista中新增的一种数据保护功能,主要用于解决一个人们越来越关心的问题:由计算机设备的物理丢失导致的数据失窃或恶意泄漏。

数据的加密与解密

《C语言课程设计》课程设计报告 题目数据的加密与解密 学号110803022 姓名桂阳阳 年级专业2011级通信工程 指导教师蔡继盛 完成日期2012 年 6 月 5 日 安徽师范大学物理与电子信息学院 College of Physics and Electronic Information, Anhui Normal University

目录 课程设计任务书 (3) 摘要 (4) 关键词 (4) 原理 (4) 一.系统功能分析 (5) 1.1设计目的 (5) 1.2功能描述 (5) 二.C 语言程序编写 (6) 2.1程序结构图 (6) 2.2程序流程图 (6) 2.3程序源代码 (8) 三.程序功能示例 (13) 3.1示例截图 (13) 3.2测试过程 (16) 四.设计体会与收获 (16) 五.参考文献 (16)

《C 语言程序》课程设计任务书

摘要: 作为保障数据数据安全的一种方式,对于信息的加密技巧起源于欧洲,最广为人知的编码机器是德国的German Enigma,在第二次世界大战中德国人利用它创建了加密信息系统,从而解决军事信息的保密通讯问题。 尽管加密技术被首先使用在军事通信领域,但是人们或许出于安全的考虑,开始逐渐对于商业机密、政府文件等重要信息实施加密手段。数据加密应运而生。其基本原理是: 对明文(可读懂的信息)进行翻译,使用不同的算法对明文以代码形式(密码)实施加密。该过程的逆过程称为解密,即将该编码信息转化为明文的过程。 从事数据加密研究的人称为密码编码者(Cryptographer),而从事对数据解密的专业人士称为密码分析者(Cryptanalyst)。如今数据加密技术被广泛地应用与国民经济各个领域,特别是政府机关和国防情报部门,此外才是科学研究机关、商业部门、新闻出版、金融证券、交通管制与电力输送等部门。 而C语言程序设计教学不仅仅局限于使学生单纯地了解和掌握C语言的基本语法规范,而是要致力于培养学生运用C语言解决实际问题的编程能力。C 语言程序设计教学方法的改革让学生从多角度、以多方式去了解和掌握C语言以及程序设计的精髓,着重培养学生无论以后在学习、工作中使用什么语言编程,都能灵活应用这些思想和方法的能力。 关键词:C语言,程序设计,换位法,换位位数,数据加密与解密 原理: 换位法加密的原理是将英文句子中的空格 去除,然后将句子排成若干行,每行的字符 数为换位位数,再按列输出即为密文,不足 部分填入随机字母。;例如英文can you come here 若换位位数取4,则密文为comraueench*yoe*, *代表随机字母,如右图所示:

常见格式文件的加密和解密

常用格式文件的加密解密方法 庆云县水务局项目办 二〇一二年五月二十三日

目录 0、引子 1 1、新建word文件的加密方法1 1.1任务1 1.2基本步骤1 1.3示范1 2、原有word文件的加密方法4 3、Excel文件的加密方法 4 3.1任务4 3.2基本步骤4 3.3示范4 4、CAD文件的加密方法 5 4.1任务5 4.2基本步骤6 4.3示范6 5、文件的解密方法8 5.1任务8 5.2基本步骤8 5.3示范8

0、引子 我们的日常工作,往往是处理一些文字、表格和图纸。最常用的文件格式有word、excel和CAD。怎样加密、解密这些格式的文件,是我们常遇到的问题。由于文件的加密、解密方法大致一样,所以,这里只介绍这三种文件的加密解密方法。其它格式的文件加密解密,可以参照进行。 加密解密文件需要知道文件格式的后缀名,后缀名又称文件扩展名,是操作系统用来标志文件格式的一种机制。通常来说,一个扩展名是跟在主文件名后面的,由一个分隔符分隔。如文件名“readme.txt”中,readme是主文件名,.txt为扩展名,表示这个文件被认为是一个纯文本文件。常见文档类型及其后缀名和打开方式详见下表。 常见文档类型及其后缀名和打开方式: 1、新建word文件的加密方法 1.1任务 对新建word文档1(未曾保存)进行加密 1.2基本步骤 ①打开菜单“文件”→②点击“另存为”选项→③点击“工具”按钮→④选定“安全措施选项(C)”→⑤输入密码→⑥确定→⑦再次输入密码→⑧确定→⑨保存。 1.3示范 ①打开菜单“文件”:点击菜单栏最左侧的“文件”按钮,弹出“文件”下拉列表; ②点击“另存为”选项:点击“文件”下拉列表的“另存为”选项,弹出“另存为”对话框,如图1所示。

(完整版)解密需要打开口令的PDF文件

工具/原料 ?Advanced PDF Password Recovery 5.0 ?PDF Password Remover 3.0 ?PDF Unlocker ?Foxit PDF editor 2.2 (PJ版) 步骤/方法 1.解密需要打开口令的PDF文件 破解这类PDF加密的软件还是比较多的,不过效果都不甚理想,因为这类软件基本上都是采用 暴力破解的方法,就是穷举法,如果你知道密码的部分内容也可以通过字典法来进行破解 反正基本上都差不多,这里我用 Advanced PDF Password Recovery 5.0 这款举例。 软件的运行界面如 下: 最上面一排是操作按键,中间一块是设置区下面一块是信息区。

我们测试一个比较简单的3位纯数字加密的PDF文件,预先知道密码是123 基本设计如下: 攻击类型设置为暴力,范围选项我们勾选所有数字(先测试纯数字的), 开始于 0,结束于 999999 (长度选项卡里面设置最大长度口令字符数为6字符,和999999对应, 目的是尝试0~999999的所有六位数的纯数字) 如果解密成功就会出现如下界面: 我们可以看一 下,这个文件的密码是123 破解时间是19ms ,说明简单的密码破解还是比较轻松的。 如果是比较复杂的或者长度比较长的密码(特别是一些网站喜欢用网站的网址作为密码),

那么用这个方法几乎是无法破解的,如果遇上这样子的文件,我劝大家还是不要浪费时间, 洗洗睡吧~~~HOHO~~~ 1.文件能够打开,但是被限制了权限的PDF文件的解密 这类的文件是最常见的,特别是网站发布的一些文件资料等等,都是加了权限密码限制我们 复制、打印、转换等等,这类的加密方式还是比较好破解。 此类的加密,用adobe reader或者adobe acrobat打开后在标题栏的上面会有(已加密)字样: 2.1 使用PDF Password Remover 3.0解密

【加密】教你使用Win7--BitLocker加密功能

加密/解密方法: 在控制面板中点击【BitLocker驱动器加密】→【启用BitLocker】/【关闭BitLocker】→按提示操作 使用说明 1.加密后盘符会多了一把金色的锁,解密后金色的锁会变成银色。 2.本地磁盘加密后重启系统,就需要输入密码才能访问,再次访问就不需要输入密码了, 直到下次重启。 重插拔U盘后也需输入密码才能访问。 解锁再关闭后,就不可以再自动上锁了。 恢复分区的锁定:用管理员权限运行【CMD】,输入【manage-bde空格-lock S:】,其中S为要恢复锁定的分区名。 3.如果设置了【在此计算机上自动解锁此驱动器】,即使重启系统,重插拔U盘,在这台 电脑上,也不需要输入密码。(若要对固定数据驱动器 [如E盘] 设置自动解锁,必须先使用BitLocker对安装了WIN7的驱动器 [C盘] 进行加密;若对移动数据驱动器 [U 盘] 设置为自动解锁,就不用先对 [C盘] 进行加密) 4.加密后在X P系统只能以只读方式查看,但可复制文件至电脑。 加密后的U盘如果要在XP中使用的话,那么这个U盘的文件格式只能是FAT32,如果为NTFS格式,插入XP系统后会提示磁盘没有格式化。 5.【恢复密码文件】最好保存到非加密的分区文件中,不要保存在根目录下。 6.取消BitLocker加密的第二种方法:可以先对分区进行解密,然后把加密分区里面的 文件全部复制到另外一个没有加密的分区中,再对之前设置了加密的分区(包括U盘)进行格式化即可,可能耗时短一点。 7.怎样终止未完成的Bitlocker加密程序(谨慎操作) 在控制面板→【Bitlocker驱动器加密】界面中,如果该分区正在加密,加密的分区右边会有个【关闭Bitlocker】按钮,点击【关闭Bitlocker】→【解密驱动器】,加密中的硬盘会立即开始将已加密的部分开始解密,而且之前的加密窗口也立即变成了解密窗口。 8.如果忘记BitLocker加密的密码,可双击【该分区】→在【密码输入窗口】中点击【我

五种常用的数据加密方法

五种常用的数据加密方法.txt22真诚是美酒,年份越久越醇香浓型;真诚是焰火,在高处绽放才愈是美丽;真诚是鲜花,送之于人手有余香。一颗孤独的心需要爱的滋润;一颗冰冷的心需要友谊的温暖;一颗绝望的心需要力量的托慰;一颗苍白的心需要真诚的帮助;一颗充满戒备关闭的门是多么需要真诚这一把钥匙打开呀!每台电脑的硬盘中都会有一些不适合公开的隐私或机密文件,如个人照片或客户资料之类的东西。在上网的时候,这些信息很容易被黑客窃取并非法利用。解决这个问题的根本办法就是对重要文件加密,下面介绍五种常见的加密办法。加密方法一: 利用组策略工具,把存放隐私资料的硬盘分区设置为不可访问。具体方法:首先在开始菜单中选择“运行”,输入 gpedit.msc,回车,打开组策略配置窗口。选择“用户配置”->“管理模板”->“Windows 资源管理器”,双击右边的“防止从“我的电脑”访问驱动器”,选择“已启用”,然后在“选择下列组合中的一个”的下拉组合框中选择你希望限制的驱动器,点击确定就可以了。 这时,如果你双击试图打开被限制的驱动器,将会出现错误对话框,提示“本次操作由于这台计算机的限制而被取消。请与您的系统管理员联系。”。这样就可以防止大部分黑客程序和病毒侵犯你的隐私了。绝大多数磁盘加密软件的功能都是利用这个小技巧实现的。这种加密方法比较实用,但是其缺点在于安全系数很低。厉害一点的电脑高手或者病毒程序通常都知道怎么修改组策略,他们也可以把用户设置的组策略限制取消掉。因此这种加密方法不太适合对保密强度要求较高的用户。对于一般的用户,这种加密方法还是有用的。 加密方法二:

利用注册表中的设置,把某些驱动器设置为隐藏。隐藏驱动器方法如下: 在注册表HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\E xplorer中新建一个DWORD值,命名为NoDrives,并为它赋上相应的值。例如想隐藏驱动器C,就赋上十进制的4(注意一定要在赋值对话框中设置为十进制的4)。如果我们新建的NoDrives想隐藏A、B、C三个驱动器,那么只需要将A、B、C 驱动器所对应的DWORD值加起来就可以了。同样的,如果我们需要隐藏D、F、G三个驱动器,那么NoDrives就应该赋值为8+32+64=104。怎么样,应该明白了如何隐藏对应的驱动器吧。目前大部分磁盘隐藏软件的功能都是利用这个小技巧实现的。隐藏之后,WIndows下面就看不见这个驱动器了,就不用担心别人偷窥你的隐私了。 但这仅仅是一种只能防君子,不能防小人的加密方法。因为一个电脑高手很可能知道这个技巧,病毒就更不用说了,病毒编写者肯定也知道这个技巧。只要把注册表改回来,隐藏的驱动器就又回来了。虽然加密强度低,但如果只是对付一下自己的小孩和其他的菜鸟,这种方法也足够了。 加密方法三: 网络上介绍加密方法一和加密方法二的知识性文章已经很多,已经为大家所熟悉了。但是加密方法三却较少有人知道。专家就在这里告诉大家一个秘密:利用Windows自带的“磁盘管理”组件也可以实现硬盘隐藏! 具体操作步骤如下:右键“我的电脑”->“管理”,打开“计算机管理”配置窗口。选择“存储”->“磁盘管理”,选定你希望隐藏的驱动器,右键选择“更改驱动器名和路径”,然后在出现的对话框中选择“删除”即可。很多用户在这里不

实验五 数据加密与解密实验

实验五数据加密与解密实验(3学时) 一、实验目的 1、了解OPENSSL开放源程序的应用; 2、熟悉用对称加密的方法加密和解密。 3、熟悉利用RSA非对称密钥对文件进行加密与解密的整个过程方法。 二、实验设备及软件环境 (一)实验设备 服务器、交换机和PC机组成NT网络。 (二)软件环境 1.服务器采用Microsoft Windows 2003 Server 操作系统; 2.学生客户端采用Windows XP系统、IE6.0以上浏览器。 3.OPENSSL开放源程序 三、实验内容与步骤(整个实验共分五个部分) (一)准备工作 步骤一下载OPENSSL安装包到C盘根目录下。 (下载地址:https://www.wendangku.net/doc/f27335675.html,/openssl.rar) 步骤二在C盘中右击压缩包,使用“解压到openssl\”方式来解压 软件包,在C盘根目录下,自动生成OPENSSL文件夹。 步骤三点击“开始”、“程序”、“附件”、“命令提示符”,打开“命令提示符”窗口。如图8-1。 图8-1 命令提示符

步骤四在“C:\Documents and Settingsowner>”键入cd c:\openssl\out32dll,输入后按回车键,进入到openssl\out32dll的目录下,如图8-2所示。 (命令的含义:打开C盘目录下,openssl文件夹下的out32dll文件夹) 图8-2 openssl\out32dll的目录 (二)对称加密实验步骤 步骤一用记事本创建一个文本文件,文件名为学生的学号(如026h321f.txt),内容为学生的名字和学号,保存在c:\openssl\out32dll的文件夹下,如图9-1所示。 图9-1用记事本创建的文本文件 步骤二输入命令“openssl enc -des3 -in 026h231f.txt -out out026h231f.des”(注意所有的-符号的前面都有一个空格),输入后按回车键,加密过程中会提示你输入保护密码,按回车键后会再输一次密码进行确认,(注:输入密码时屏幕无任何显示)执行结果如图9-2所示。执行完上述命令完后,在c:\openssl\out32dll目录下会自动生成一个用des3算法加密后out026h231f.des的文件。 (命令的含义:使用DES3算法对数据进行对称加密。

怎样给手机密码解锁【技巧总结】

别光看不顶啊!闲话少说,直接进入—— 解话机锁:*2767*2878#/×2767*7377# 三星码片复位:*2767*3855# 也可用于解机锁或卡锁 三星显温度、电池容量:*#0228# 三星调显示屏对比度:*#0523# 三星软件版本:*#9999# 三星A100-A188看版本:*#0837# 摩托罗拉T2688解所有锁:19980722 T2688/2988/988d没有中文:*#0000# OK(插卡) 摩托罗拉所有机锁:按MENU+5+1/2 西门子恢复出厂设置:*#9999# 西门子乱文回中文:*#0000#/×#0086# 西门子软件版本:*#06# 左键 爱立信老机回英语:*#0000# 爱立信新机回英语:按CLR-左键-0000-右键 爱立信显出厂日期:右、*、左、左、*、左、*键 诺基亚显出厂日期:*#0000#(插卡) 诺基亚省30%电:*#746025625# 飞利浦强迫重连网:*#2562*# 飞利浦显示和更改手机密码:*#7489*# 博世(BOSCH)909S回中文:*#0852# 博世(BOSCH)909s回英文:*#0851# NEC显软件版本:*#2820# NEC恢复原厂设置:*#73738# 波导s1000隐藏功能:*#*#1705# 波导s1000解锁:*#*#1705#46(也用于999D,720) 如死机再用---24681357(或直接就用它解) 波导8xx/9xx系列:*#+串号7-14位# SIM卡波导串号最后9位去掉最后一位 阿尔卡特OT221/220解锁:25228352/ALCATEL+D 阿尔卡特OT301/302解锁:83227423 阿尔卡特OT500/700解锁:25228352 康佳:*#0001# *#1001# ##1001# 康佳小雪5219:#8879576# 原始:1234 GVC:*#1001* (海尔) 南方高科320开机键入##1001#,然后装上卡输入0000 OK 三菱NET LOCK:*787090或*787292 三菱IMSI LOCK:*362628或*360608 三菱NETSUB LOCK:*476989 三菱CP LOCK:*482896或*480896 三菱SP LOCK:*967678 三菱EXT LOCK:*574243

BitLocker加密功能教程

Win7的新功能—BitLocker加密功能的使用方法 注:win7系统中只有旗舰版的才有bitlocker加密功能 首先可以在windows7操作系统的控制面板中找到“BitLocker驱动器加密”(英文版windows7系统中对应“BitLocker Drive Encryption”)选项,点击进入可以看到当前电脑的所有磁盘。 想要加密哪一个驱动器就选择其右侧的“启用BitLocker”按钮,紧接着按照提示一步步操作即可完成加密过程。 加密本地磁盘保护数据安全操作简单。 点击“启用BitLo cker”按钮之后,你将要在新弹出的窗口中设置加密驱动器密码,输入完成后点“下一步”然后选择保存密钥的地方。

一般说来存放在USB闪存驱动器中安全系数最高,因为那样的话,加密驱动器与密码分离保管,就算其他人获得了其中一样也无法打开你加密的磁盘。备份好自己密钥之后,就不会有遗忘的后顾之忧了,马上动手加密吧! 注:这个加密过程时间比较长,需耐心等待!

加密完成之后可以在控制面板窗口中看到原先的磁盘图标上多了一把锁,此时表示驱动器已经加密完成。对于本地各驱动器的加密非常简单,该功能在之前的Vista系统中也就开始提供,windows7操作系统中BitLocker To Go功能专门用于加密移动存储设备如U盘,移动硬盘等,究竟是不是也如上面加密本地驱动器一般简单,仔细往下看。 Win7新功能加密U盘移动硬盘同样方便 插入一个U盘之后,可以马上在控制面板中原来的BitLocker窗口下看到多出的“BitLocker To Go”这项功能,同样方法点击“启用BitLocker”功能; 另外打开计算机驱动器管理窗口,鼠标右键点击U盘同样可以启用BitLocker功能,所以开

解锁全教程

一般解锁方法: 1、若知道用户原来设定的口令,可在P C-3000A T主菜单下按小键盘的6键(或右方向键),选择“D i s k s e q u r i t y c o m m a n d s”---“u n l o c k d i s k”,输入正确口令,回车,若提示操作成功即为解锁成功;然后,再执行”C l e a r p a s s w o r d”,便可完全清除用户设定的口令,此时数据无损。 2、若不知道用户设定的口令,但Ma s t e r p a s s w o r d为$F F F E,且S e q u r i t yl e v e l为h i g h,则解锁步骤同上。但输入密码时须选择P a s s w o r d t y p e:m a s t e r,并输入正确的m a s t e r p a s s w o r d. 3、若不知道用户设定的口令,但Ma s t e r p a s s w o r d为$F F F E,且S e q u r i t y l e v e l为m a x i m a l,则应执行“D i s k s e q u r i t y c o m m a n d s”-“S e t p a s s w o r d”,输入正确的M a s t e r p a s s w o r d,然后执行“E r a s e d i s k”。经过数十分钟的数据清除过程后,硬盘可恢复到可使用状态,但原有数据全部丢失。 4、若不知道用户设定的口令也不知道Ma s t e r p a s s w o r d,则需要用特别的方法解除密码 解开硬盘逻辑死锁的另几种有效方法!(简易) 给“逻辑锁”解锁比较容易的方法是: 1。“热拔插”硬盘电源。 “热拔插”硬盘电源就是在当系统启动时,先不给被锁的硬盘加电,启动完成后再给硬盘“热插”上电源线,这样系统就可以正常控制硬盘了。这是一种非常危险的方法,为了降低危险程度,碰到“逻辑锁”后,大家最好依照下面两种比较简单和安全的方法处理。2。★U l t r a E d i t★ 首先准备一张启动盘,然后在其他正常的机器上使用二进制编辑工具(推荐U l t r a E d i t)修改软盘上的I O.S Y S文件(修改前记住先将该文件的属性改为正常),具体是在这个文件里面搜索第一个“55A A”字符串,找到以后修改为任何其他数值即可。用这张修改过的系统软盘你就可以顺利地带着被锁的硬盘启动了。不过这时由于该硬盘正常的分区表已经被破坏,你无法用“F d i s k”来删除和修改分区,但是此时可以用本论坛介绍的关于分区表恢复的方法来处理。 3。★D M★ 因为D M是不依赖于主板B I O S来识别硬盘的硬盘工具,就算在主板B I O S中将硬盘设为“N O N E”,D M也可识别硬盘并进行分区和格式化等操作,所以我们也可以利用D M软件为硬盘解锁。 首先将D M拷到一张系统盘上,接上被锁硬盘后开机,按“D e l”键进入B I O S设置,将所有I D E接口设为“N O N E”并保存后退出,然后用软盘启动系统,系统即可“带锁”启动,因为此时系统根本就等于没有硬盘。 启动后运行D M,你会发现D M可以识别出硬盘,选中该硬盘进行分区格式化就可以了。这种方法简单方便,但是有一个致命的缺点,就是硬盘上的数据保不住了 硬盘逻辑锁巧解 在谈论具体的解决方法前,先讲述一下被"逻辑锁"锁住的硬盘为什么不能用普通办法启动的原因: 计算机在引导D O S系统时将会搜索所有逻辑盘的顺序,当D O S被引导时,首先要去找主引导扇区的分区表信息,位于硬盘的零头零柱面的第一个扇区的O B E H地址开始的地方,当分区信息开始的地方为80H时表示是主引导分区,其他的为扩展分区,主引导分区被定义为逻辑盘C盘,然后查找扩展分区的逻辑盘,被定义为D盘,以此类推找到E,F,G....."逻辑锁"就是在此下手,修改了正常的主引导分区记录将扩展分区的第一个逻辑盘指向自己,D O S在启动时查找到第一个逻辑盘后,查找下个逻辑盘总是找到是自己,这样一来就形成了死循环,这就是使用软驱,光驱,双硬盘都不能正常启动的原因。实际上这"逻辑锁"只是利用了D O S 在启动时的一个小小缺陷,便令不少高手都束手无策。知道了"逻辑锁"的"上锁"原理,要解锁也就比较容易了。以前我看到有位朋友采用"热拔插"硬盘电源的方法来处理:就是在当系统启动时,先不给被锁的硬盘插上电源线,等待启动完成后再给硬盘"热插"上电源线,这时如果硬盘没有烧坏的话,系统就可以控制硬盘了。当然这是一种非常危险的方法,大家不要轻易尝试,下面介绍两种比较简单和安全的处理方法。 方法一:修改D O S启动文件 首先准备一张D O S6.22的系统盘,带上d e b u g、p c t o o l s5.0、f d i s k等工具。然后在一台正常的机器上,使用你熟悉的二进制编辑工具(d e b u g、p c t o o l s5.0,或者w i n d o w s下的u l t r a e d i t都行)修改软盘上的I O.S Y S文件(修改前记住改该文件的属性为正常),具体是在这个文件里面搜索第一个"55a a"字符串,找到以后修改为任何其他数值即可。用这张修改过的系统软盘你就可以顺利地带着WWW.Y U N WE I P C.C O M/B B S X P/制作:l i j i n t i m

轻松搞定Windows磁盘BitLocker加密

轻松搞定Windows磁盘BitLocker加密 说到个人电脑的隐私安全,大家都会想到加密。我们知道,计算机启动登陆需要密码,不管你的登陆密码多么复杂难于破解,也只是进入系统的第一道门槛而已,对于想要获取你计算机数据的人来说,他完全可以绕过这个步骤直接从你的硬盘上获取资料。亦或是有些朋友习惯使用移动硬盘和U盘等保存重要隐私数据,当一旦丢失后,就会暴露无遗。所以,我们能够想到的就是给你的磁盘、U盘再设置一次进入的加密,就算是别人进入你的系统,也无法读取你硬盘上的数据。 既然说到加密,很多人又会想到该使用什么方法,以及哪款软件才能实现加密。其实,没那么复杂,如果您正在使用的是Windows 7或者最新的Windows 8系统,无需第三方软件就能轻松给你的硬盘、U盘进行加密。这就是本文将要介绍的BitLocker加密方式,以Win8为例,让我们来看看该如何使用BitLocker给U盘加密。 一、启动BitLocker 的方式 1、控制面板中打开的位置 在控制面板中启动BitLocker 2、在要加密的磁盘上鼠标右键单击,弹出的右键菜单上启动

在磁盘上鼠标右键单击,弹出的右键菜单中启动BitLocker 二、给U盘加密的步骤 启动BitLocker后会弹出BitLocker加密的向导对话框。在这里我们看到两个可选项,“使用密码解锁驱动器”和“使用智能卡解锁驱动器”,顾名思义,这里需要设置的密码,就是用于解锁的。对大多数用户而言使用密码解锁即可。这里解释一下什么是“智能卡解锁”。 BitLocker加密向导 “智能卡”是一含有计算机芯片的小型塑料卡。通常由大型公司的信息技术(IT)部门颁发。若要使用智能卡,您还需要一个智能卡读卡器,该设备安装或连

手机万能解锁密码大全

一)摩托罗拉 摩托罗拉所有机锁:按MENU+5+1/2 T190解锁密码: 20010903 T191解锁密码:19980722 3X8/2X88/998/8088/L2000/7689/T189/C289等初始密码为1234 ;话机密码为000000 ;解锁方法:如无测试卡,则先输入1234,如密码已更改,先按Menu 键会出现“修改开锁密码”,按OK键,然后输入000000就会显示四位数的话机密码,如保密码已更改,则只能用测试卡或软件工具解。 T2688/2988万能解锁码:19980722 C300解话机锁:20020801 摩托罗拉手机出现“话机坏,请送修”:可利用测试卡,输入0205#、0205068#即可修复,无须重写码片。 T2688/2988/988d设置中文:*#0000# ok(插卡) V60/V66/V70解锁:插入测试卡,开机后输入menu+048263*进入测试状态后按18*1总清除,输入18*0是主复位。 V998外文改中文:MENU—左方向键按3下—OK—左方向键按5下—OK—Simplified—CHINESE 摩托罗拉2688时间不走修复密诀:将电源1脚和8脚用漆包线短接,必杀!(二)诺基亚 初始保密码:12345 5110锁码机解码:在保密码锁死,输入正确保密码无效的情况下,可1、按C 键不放,2、按*键不放,3、按*键不放,4、输入04*PIN*PIN*PIN# 解除锁码。3210解 SP 锁: 1、按C键 2、按向下键 3、按C键直到屏幕清除 4、按住*键直到其闪烁 5、再按住*键直到其闪烁,输入04*PIN码*PIN码*PIN N7650恢复出厂设置:*#7370# 诺基亚手机省30%电密码:*#746025625# 诺基亚手机查出厂日期:*#0000# 诺基亚能打过进不能呼出:如果显示屏左上角有“2”字,按住#键两秒,再按确认即可;如果没有显示“2”,则按“功能键”+6+1+4+2再按确认即可。 显示手机资料密码:输入*#92702689# 查询手机是否锁频:“#pw+1234567890+1#” 查询是否锁国家码;“#pw+1234567890+2#” 查询是否锁网络码;“#pw+1234567890+3#” 查询是否锁网络提供商锁定的码;“#pw+1234567890+4#” 查询是否锁SIM卡。(连续按*键二次即出现+;连续按*键三次即出现p;连续按*键四次即出现w) 诺基亚3210外文改中文:屏幕右上角依次调到4-2-1-9 诺基亚5110外文改中文:屏幕右上角依次调到4-2-1-8 诺基亚3310外文改中文:屏幕右上角依次调到6-2-1-3 (三)三星 解话机锁:*2767*2878#/*2767*7377# 码片复位:*2767*3855# 也可用于解机锁或卡锁 调对比度:*#0523# 看软件版本:*#9999# 三星600万用密码:9998 三星600码片复位指令:旧版用*2767*2878#或*2767*3855#;新版用*2767*7377#。

相关文档
相关文档 最新文档