代码改变世界

序列化

2013-04-01 08:39 by 左眼微笑右眼泪, 420 阅读, 0 推荐, 收藏,
摘要:为什么需要序列化 1.应用程序的状态可以保存在一个磁盘或者文件中,下次使用时可以恢复; 2.对象可以轻松的复制; 3.对象可以这样进行克隆; 4.网络发送/跨应用程序域 可以进行加密,压缩等; .NET提供的序列化器 BinaryFormatter(序列化所有的字段,包括私有的) XmlSerialization(不能序列化私有字段)(测试了一次发现它竟... 阅读全文

强命名程序集,签名,延迟签名

2013-04-01 06:54 by 左眼微笑右眼泪, 1467 阅读, 0 推荐, 收藏,
摘要:强命名程序集 如果一个程序集有一个唯一的标记,那么这个程序集就可以叫做强命名程序集。在.NET框架中是通过公钥/私钥加密来产生这个唯一标记的。一个强命名程序集包含四个唯一标志程序集的特性:文件名(没有扩展名),版本号,语言文化信息(如果有的话),公有秘钥。 这些信息存储在程序集的清单(manifest)中。清单包含了程序集的元数据,并嵌入在程序集的某个文件中。下面的字符串标识了二个... 阅读全文

由Public key生成Public key token

2013-04-01 06:35 by 左眼微笑右眼泪, 2160 阅读, 1 推荐, 收藏,
摘要:在.NET程序中,强签名的时候,会用到密钥,一般是用私钥对进行哈希处理后的值进行RSA签名,然后把这个签名放在程序集的CLR头里面,同时把公钥也放在Assembly里面。公钥占160字节,有32字节的头和128字节的数据组成。有时候一个程序引用了很多程序集,如果把公钥完全记录在程序集里面,最后就会占用比较多的空间。为了节约空间并且方便使用,提出了公钥标记(public key tok... 阅读全文

把16进制字符转换成byte数组

2013-03-25 08:18 by 左眼微笑右眼泪, 2709 阅读, 0 推荐, 收藏,
摘要:在计算机里,平时常用的编码一般用的是16进制的字符串并不是二进制字符串,二个16进制的数刚好可以表示一个字节,十六进制使用起来更简短,换算的时候一位16进制数可以顶4位2进制数。而在我们写程序的时候,用到的一般是字节数组。它们之间是怎样转换的呢?下面介绍一下它们相互转换的方法。 16进制字符串转换成Byte数组 public static byte[] HexStr... 阅读全文

SHA1哈希算法

2013-03-25 07:52 by 左眼微笑右眼泪, 2296 阅读, 0 推荐, 收藏,
摘要:SHA1哈希算法是一个用来进行数字签名的算法,对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要,这个消息摘要可以用来验证数据的完整性。SHA1有一些特性,一是不可以从消息摘要中复原信息,另外一个就是不同的消息会产生不同的消息摘要。所以如果在传输的过程中,数据发生了丢失或者损坏,通过消息摘要就可以看出来。 在.NET中对程序集进行强签名的时候,需要生成一个... 阅读全文

.NET工具篇(四)—SN.EXE

2013-03-25 07:31 by 左眼微笑右眼泪, 3081 阅读, 1 推荐, 收藏,
摘要:SN是.NET中提供生成密钥的工具,在对程序集进行强签名的时候,需要用到一个公钥对,用这个工具,可以生成一个密钥文件,同时可以查看文件里面的公钥,并且可以使用这个工具来对程序集进行强签名。延迟签名的时候也需要使用这个工具。这个工具一般是在C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin这个路径下。启动这个工具,界面如下: ... 阅读全文

byte类型特殊的地方

2013-03-24 21:40 by 左眼微笑右眼泪, 414 阅读, 0 推荐, 收藏,
摘要:最近在程序中用到了byte,发现了一些很奇怪的地方。 问题一:直接把Int类型的1赋值给byte,没有报错,但是定义一个int类型,然后再次赋给byte就会报错,说不能隐式转换 问题二:明明是byte型的加byte型的,最后赋值给byte型,它竟然报错,说是不能把int转换成byte,int从哪来? 问题三:b+=b2不是相当于b=b+b2吗?为什么一个有错误,而另外一个没有错误? ... 阅读全文

.Net位运算符&,|,!,^,<<,>>

2013-03-24 21:39 by 左眼微笑右眼泪, 1278 阅读, 0 推荐, 收藏,
摘要:在.NET中经有时会碰到一些类似于&,|,!,^,<<,>>的运算符,这些运算符到底是啥作用呢。 & 与 如果两个都为1,则结果为1,否则结果为0 例:10001010 & 00101011 结果为00001010 | 或 如果两个中有一个为1,那么结果为1,两个都为0的时候结果为0 例:10001010 | 00101011 结果为10101011 !取反 取反... 阅读全文

原码、反码和补码

2013-03-22 07:32 by 左眼微笑右眼泪, 872 阅读, 0 推荐, 收藏,
摘要:在计算机中,定点数有三种表示方法原码,反码和补码 原码: 任何一个正数都可以转换成0和1的形式,然后以二进制的形式存放在电脑里面,一个占8个字节的存储单元,可以存入的无符号的整数的范围是0到255,总共256个数。 1 0 ... 阅读全文

权限模型

2013-03-21 11:12 by 左眼微笑右眼泪, 23 阅读, 0 推荐, 收藏,
只有注册用户登录后才能阅读该文。 阅读全文
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 16 下一页