随笔分类 -  编码和安全

CSP加密服务(一)
摘要:(一) 加密服务提供程序缩写为:CSP,全称为:Cryptographic Service Provider 即加密服务提供者。它是windows系统中提供的用于加密的软硬件组件。通过对微软的加密应用程序接口即CrytoAPI(或CAPI)的编程访问它来提供身份验证、编码和各种的加密、签名算法。如下图:应用程序不是直接与某个CSP通信。它会调用CAPI的函数,然后操作系统通过CrytoSPI(一个系统接口)筛选这些调用并且把这些调用传递到适合的CSP函数。然后CSP通过对参数的解析调用适当的CSP函数,最后向操作系统返回期盼值(加密操作是由特定的CSP来完成的)。每个CSP是实现全部加密操作的 阅读全文
posted @ 2011-03-31 12:10 梅桦 阅读(7351) 评论(0) 推荐(3) 编辑
加密(6)——证书(2)
摘要:证书一般证书由权威机构(CA认证中心)颁发。其中包括个人信息,公钥,CA签名信息(数字签名)和其它信息。用户接到证书后,可以到证书机构(CA)验证证书来获得证书拥有者身份真伪。然后通过其中的公钥来验证签名。这里说一下windows证书和.net下对证书的类实现。(一)再说存储区使用“证书”管理单元,可以显示用户、计算机或服务的证书存储区。在.net中,存储区由X509Sto... 阅读全文
posted @ 2010-04-20 15:36 梅桦 阅读(2908) 评论(2) 推荐(4) 编辑
加密(5)——证书(1)
摘要:证书,电子证书,又叫数字证书,是一种用于计算机身份识别的机制。证书一般包括拥有者的身份信息,一把公钥和证书的签名信息,例如有效时限。(以下证书指的是数字证书)证书具有唯一性和可靠性,通过它采用公钥机制,即一个密钥对来进行加解密。用户持有私钥用于解密和进行数据签名,而公开公钥用于加密和验证签名。证书可以由权威机构颁发,专门的证书发行机构即证书授权中心。对于专业的证书申请及维护需要高昂的费用(例如企业... 阅读全文
posted @ 2010-04-12 12:24 梅桦 阅读(2431) 评论(0) 推荐(0) 编辑
加密(4)——.net下的数字签名
摘要:在上一篇中,说了说数字签名。数字签名是建立在密钥对体系基础上的:数字签名(信息摘要,私钥),验证签名(数字签名,公钥)。对于公钥和私钥可以这样理解:密文=加密(A,B,原文),原文=解密(A,B,密文),其中A和B就是密钥对。.net下的System.Security.Cryptography 名字空间是提供加密服务的一个空间。在边有大量用于实现加密服务的类,例如哈希散列,随机数字等。这个在前边两... 阅读全文
posted @ 2010-04-09 14:44 梅桦 阅读(2524) 评论(1) 推荐(0) 编辑
加密(3)——数字签名
摘要:电子签名在传统的商务活动中,为了保证交易的安全性和真实性,一份书面合同要由当事人或负责人签字,盖章,以便让交易双方识别是谁签的合同,保证签字或盖章的人认可合同的内容,在法律上才能承认这份合同的有效性。在电子商务环境中,合同或文件是以电子文件的形式表现和传递。在电子文件上,传统的手工签名和盖章不易进行,所以要依靠一些其它手段来代替。这种在电子文件中识别双方交易人的真实身份,保证交易安全性和真实性以及... 阅读全文
posted @ 2010-04-09 09:44 梅桦 阅读(1843) 评论(0) 推荐(1) 编辑
加密(2)——私钥加密
摘要:私钥加密,这里所说的私钥加密是指通过单个私钥来加密和解密数据。持有私钥的任一方均可通过私钥来解密数据。它是一种可逆加密方法。又称对称加密。(一)CryptoStream先说一下CryptoStream类,这个类的作用就是将数据流链接到加密转换的流。CLR使用面向设计进行加密。其设计的核心是CryptoStream。实现CrytoStream的任何对象可以和实现Stream的任何对象链接起来。它们之... 阅读全文
posted @ 2010-04-07 16:15 梅桦 阅读(5190) 评论(0) 推荐(0) 编辑
加密(1)——哈希算法
摘要:Hash,一般翻译为散列,但多数是音译过来的:哈希(例如常用的哈希表Hashtable(.net))。它把预映射(pre-image)通过散列算法(哈希算法),变换成固定长度的输出,这个输出就叫散列值也就是哈希值。它就是一种将任意长度的消息压缩到某一固定长度的消息(消息摘要)的方法。(一)SHA加密SHA,就是安全散列算法,Secure Hash Algorithm。它能计算出一个数据消息所对应的... 阅读全文
posted @ 2010-04-07 11:20 梅桦 阅读(6229) 评论(0) 推荐(0) 编辑
字符编码(2)——Base64,ANSI
摘要:Base64是什么?Base64编码的用途是为了传输和传输安全(其实并不太安全)。它的算法是:每3个字节(每字节8bit),转换为4个6bit的字节(一个字节应该是8bit,所以前2位补0),然后每个6位前2位(高位)被2个零。例如:xxxxxxxx yyyyyyyy xxxxyyyy这里转换前的3个字节,然后,每6位分到一个字节中:xxxxxx xxyyyy yyyyxx xxyyyy然后高位补... 阅读全文
posted @ 2010-03-26 12:07 梅桦 阅读(5280) 评论(0) 推荐(2) 编辑
字符编码(1)——Unicode,utf-8
摘要:字符编码编码是一个将一组Unicode字符转换业个字节序列的过程。而解码是将一个编码字节序列转换为一组Unicode字符的过程。Unicode字符是什么?Unicode字符集可以简写为UCS,也就是Unicode charactor setUnicode编码是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。它通过0到0x10FFFF来映射字符,最多可容纳1114112个字符(16进制的1... 阅读全文
posted @ 2010-03-25 16:42 梅桦 阅读(3656) 评论(0) 推荐(2) 编辑