办公自动化中许多数据资源依靠网络来远程存取,而多数通讯依赖于公共网络,这样的网络环境并不能保证实体间的安全通信,数据在传输过程可能被其它人读取或篡改。为了确保应用程序的数据安全,灵活的使用.net中的数据加密技术对应用程序的内容进行保护。

浅析基于.NET Web应用程序开发的加密技术

在客户端进行的加密技术
客户端进行的加密技术主要是在客户端禁止使用鼠标右键或者是禁止用户查看源文件。这主要通过使用javascript加密达到最简单的客户端数据保护。可以通过以下方法达到目的:

1、禁止左键、右键和一些键盘事件以防复制。
在网页HTML代码的<head></head>标志中加入一些代码,就可以实现封锁左键、右键和一些键盘事件以防复制从而达到对网页的简单加密要求。

2、禁止“另存为”命令
在目标网页末尾“</body></html>”的标签前面加上加入如下代码,当执行“另存为”命令时,会弹出“保存网页时出错”的对话框,使“另存为”命令不能顺利执行。

<noscript>

<iframe scr="*.htm"></iframe>

</noscript>

使用.Net自带加密算法类提供的加密服务来实现的数据加密
.Net中加密和解密的算法分为对称算法和不对称算法。对称算法在加密和解密数据时使用相同的密钥和初始化矢量,.NET Framework提供的实现对称加密算法类有DES、RC2和Rijndael等,主要用于本地文档或数据的加密。不对称算法则使用两个不同的密钥,公共密钥在网络中传递,用于加密数据,而私有密钥用于解密数据。不对称算法主要有RSA、DSA等,主要用于网络数据的加密。

1、使用对称算法对本地文档或数据的加密与解密。
对称算法加密又称为私钥加密,因为同一密钥既用于加密又用于解密。私钥加密算法非常快,特别适用于对较大的数据流执行加密转换。

采用对称密钥算法,首先获取服务提供者的特定实例,创建一个用于加密的新的随机密钥和初始化向量IV。密钥的大小取决于用来加密的特定提供程序。IV将帮助算法生成最终加密字符串的数据块。IV用于开始第一个块的加密。如果不提供IV,那么只要密钥相同,在字符串之间传递的通用数据将保持同一种模式。因此,需要使用IV作为加密数据的“随机”组件。通过这种方式,只要使用的IV不同,即使密钥相同,同一个数据也会被加密成完全不同的值。

2、使用不对称算法对网络数据的加密和解密。
不对称算法加密也称为公钥加密,需要用一个密钥加密数据和另一个密钥来解密数据。公钥加密使用一个必须对未经授权的用户保密的私钥和一个可以对任何人公开的公钥。用公钥加密的数据只能用私钥解密,而用私钥签名的数据只能用公钥验证。公钥可以被任何人使用;该密钥用于加密要发送到私钥持有者的数据。两个密钥对于通信会话都是唯一的。不对称算法比对称算法计算的花费多、速度慢。因此在线对话中使用不对称算法加密对称密钥。

3、对少量数据使用的单向散列算法加密
单向散列函数一般用于产生消息摘要,密钥加密等,常见的实现方法有MD5和SHA1两种。

MD5的的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式。需要获得一个随机长度的信息并产生一个128位的信息摘要。

SHA1的全称是Secure Hash Algorithm(安全哈希算法),加密哈希函数将任意长度的二进制字符串映射为固定长度的小型二进制字符串。数据的少量更改会在哈希值中产生不可预知的大量更改。所以很难从加密后的文字中找到蛛丝马迹。