上一页 1 2 3 4 5 6 7 8 9 10 ··· 25 下一页
摘要: 建议118:使用SecureString保存密钥等机密字符串 托管代码中的字符串是一类特殊的对象,它们不可用被改变。每次使用System.String类张的方法之一时,或者使用此类型进行运算时(如赋值、拼接等),都要在内存中创建新的字符串对象,也就是为该新对象分配新的空间。这就带来了两个问题: 针对 阅读全文
posted @ 2017-12-08 16:30 指间的徘徊 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 建议117:使用SSL确保通信中的数据安全 SSL(Secure Socket Layer)最初是由NetScape公司设计的,用于Web安全的网络协议。目前它已经广泛应用到各类网络传输通信中了。SSL利用数字证书技术(非对称加密),保证了通信过程中的唯一性、不可篡改性、不可抵赖性。SSL通道原理图 阅读全文
posted @ 2017-12-08 16:25 指间的徘徊 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 建议116:避免用非对称算法加密文件 MD5值或者说HASH值是一种不可逆的算法。如果需要从密文还原成明文,那么就需要对称和非对称这两类可逆算法了。 对称算法示意图: 在对称算法中,首先需要发送方和接收方协定一个密钥K。K可以是一个密钥对,但必须是加密密钥和解密密钥之间能相互推算出来的。在最简单也是 阅读全文
posted @ 2017-12-08 16:24 指间的徘徊 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 建议115:通过HASH来验证文件是否被篡改 MD5算法作为一种最通用的HASH算法,也被广泛用于文件完整性的验证上。文件通过MD5-HASH算法求值,总能得到一个固定长度的MD5值。虽说MD5是一种压缩算法,以致可能存在多个样本空间会得到相同目标字符串的情况,但是这种概率很小。一个1GB的文件,哪 阅读全文
posted @ 2017-12-08 16:22 指间的徘徊 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 建议114:MD5不再安全 MD5不再安全不是就算法本身而言的。如果从可逆性的角度出发,MD5值不存在被破解的可能性。 MD5被广泛应用于密码验证和消息完整性验证。假设新注册一个用户,当注册用户的密码第一次被存储到数据库时,往往会将其转换为MD5值存储: 输出为: 保存密码原文:liming's k 阅读全文
posted @ 2017-12-08 16:20 指间的徘徊 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 建议113:声明变量前考虑最大值 假设正在开发一个工资系统,其中一个模块负责处理加薪。代码如下: 输出的结果是: 第一次加薪,工资总数:65535第二次加薪,工资总数:0工资被清零了。 如果让一个刚入行的程序员来写工资系统,他可能会给我们设计一个ushort字段来存储月薪。65535元?够多了,谁的 阅读全文
posted @ 2017-12-08 16:16 指间的徘徊 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 建议112:将现实世界中的对象抽象为类,将可复用对象圈起来就是命名空间 在我们身边的世界中,对象是什么?对象就是事物,俗称“东西”。那么,什么东西算得上是一个对象呢?对象有属性、有行为。以动物为例,比如猫(Cat)。Cat可以有Name,这就是属性;Cat有一个恶习ScratchSofa(挠沙发), 阅读全文
posted @ 2017-12-08 15:46 指间的徘徊 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 建议111:避免双向耦合 双向耦合是指两个类型之间相互引用。下面的代码是一种典型的双向耦合: 双向耦合在同一项目下,不会存在太多的问题,带来的只是设计问题。不过,如果两个类在不同的项目中时,就必须考虑解耦了,因为.NET不允许项目之间相互引用。如果尝试两个项目相互引用将出现错误提示。 常见的解耦方式 阅读全文
posted @ 2017-12-07 18:02 指间的徘徊 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 建议110:用类来代替enum 枚举(enum)用来表示一组固定的值。例如,为了表示星期信息,我们可以定义枚举Week: 枚举最大的优点在于它的类型是值类型。相比较引用类型来说,它可以在关键算法中提升性能,因为它不需要创建在“堆”中。但是,如果不考虑这方面的因素,我们不妨让类(引用类型)来代替枚举。 阅读全文
posted @ 2017-12-07 18:00 指间的徘徊 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 建议109:谨慎使用嵌套类 使用嵌套类的原则是:当某类型需要访问另一个类型的私有成员时,才将它实现为嵌套类。一个典型的例子是在实现集合时,要为集合实现迭代器,这时用到了嵌套类。代码如下所示: 我们可以注意到,嵌套类ArrayListEnumeratorSimple访问了若干外部类ArrayList的 阅读全文
posted @ 2017-12-07 17:57 指间的徘徊 阅读(205) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 25 下一页