随笔分类 -  C#

RSA签名验签学习笔记
摘要:RSA私钥签名时要基于某个HASH算法,比如MD5或者SHA1等。之前我一直认为签名的过程是:先对明文做HASH计算,然后用私钥直接对HASH值加密。最近才发现不是那么简单,需要对HASH后的数据进行BER编码再加密。先看一个例子。公钥模:89 54 E6 61 C1 52 DB ED 07 5... 阅读全文

posted @ 2015-12-16 14:51 小小娟 阅读(11247) 评论(0) 推荐(2) 编辑

CodeSmith操作Access时字段的排序问题
摘要:最近在用CodeSmith操作写ACCESS数据库的代码模版,发现CodeSmith默认的字段顺序与ACCESS中表的字段顺序不一致。首先在ACCESS数据库中建一个测试表Test,并添加ID、Name等几个字段,如下图所示:然后在CodeSmith中新建一个模版,并循环输出所有字段名 运行后得到A... 阅读全文

posted @ 2014-12-02 19:51 小小娟 阅读(786) 评论(0) 推荐(0) 编辑

WP8.1中C++的winodws运行时组件位移操作的差异
摘要:最近学习WP8.1应用开发,想把C语言的SM3国密算法移植到手机app中。由于把C语言的代码转换成C#代码工作量较大,因此只能用winodws运行时组件来实现。 SM3国密算法是一种HASH算法,具体详情请自行百度。 结果测试发现手机上SM3算法计算出来的结果和电脑上运行的结果不同!经过我一... 阅读全文

posted @ 2014-11-04 22:16 小小娟 阅读(1334) 评论(1) 推荐(0) 编辑

解决DESCryptoServiceProvider加解密时弱密钥异常
摘要:DES算法的密钥是8字节,由于其算法的特性所致,有一些密钥是不安全的,比如0xFF0xFF0xFF0xFF0xFF0xFF0xFF0xFF,用该密钥对数据进行加密与解密运算,得到的结果是一样的,这样的密钥被称为弱密钥。在.NET中我们一般用DESCryptoServiceProvider来进行DES运算,但是该类会去检测传入的密钥是否为弱密钥,如果是,就直接抛出异常。先看下面的代码: 1 public static string DESEncode(byte[] str, byte[] key) 2 { 3 DESCryptoSe... 阅读全文

posted @ 2011-11-26 16:00 小小娟 阅读(12166) 评论(7) 推荐(2) 编辑

ProjectEuler做题笔记(第1,2题)
摘要:第一题:找出1000内能被3或5整除的所有数的总和。第一反应是,循环,判断是否能被3或5整除,能的话就加到一个变量中,代码如下:接着考虑到%取模运算比较消耗性能,便另想办法。其实就是把3的倍数都加起来,把5的倍数也都加起来,两者相加再减去15的倍数之和,代码如下:经测试,当计算1000000内的结果时,方法二比方法一要快将近10倍,数据量越大差距越明显。当然最逆天的算法是用等差数列求和,3+6+9+。。。。+999+5+10+15+。。。。+995-15-30-....-990大致浏览了下官方答案和老外的留言,没有特别的解法。最后答案是233168第二题:计算斐波那契数列不超过400万的数中, 阅读全文

posted @ 2011-01-15 22:26 小小娟 阅读(1134) 评论(0) 推荐(0) 编辑

.NET异步发邮件的一个BUG
摘要:我们先来看同步发送邮件的代码代码一共三个邮件接收人,第三个是无效的邮件地址。执行后,会抛出一个异常:不允许使用邮箱名称。 服务器响应为: RP:RDN http://www.ipmotor.com/smtp_err.htm但是其它两个邮件接收人依然会收到该封邮件,如下图:接下来我们来看异步发送,代码如下:代码也是一共三个邮件接收人,第三个是无效的邮件地址。执行后,在回调函数中可以捕获到“未将对象应用设置到对象实例”的异常信息,但是其它两个邮件接收人就收不到邮件了。照我个人的理解,同步、异步操作只是执行的方式不同,执行结果总得一样吧?但是发送邮件这里明显结果都不一样了,应该是属于一个BUG吧?P 阅读全文

posted @ 2010-12-24 11:59 小小娟 阅读(2220) 评论(1) 推荐(1) 编辑

C#中的lock关键字
摘要:前几天与同事激烈讨论了一下,有一点收获,记录起来。首先给出MSDN的定义:lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。先来看看执行过程,代码示例如下:假设线程A先执行,线程B稍微慢一点。线程A执行到lock语句,判断obj是否已申请了互斥锁,判断依据是逐个与已存在的锁进行object.ReferenceEquals比较(此... 阅读全文

posted @ 2010-11-19 10:58 小小娟 阅读(45088) 评论(23) 推荐(21) 编辑

+运算符的一点探究
摘要:问题起源于:有一个实体类,里面有个string的属性,比如这样[代码]实例化后直接对str属性进行加法操作,原先我一直这么写。但是某天突然想到:实例化Demo对象后str的值是null,进行加法操作怎么没出错呢?于是先找到MSDN中对加法的解释:[代码]一元的就不管它了,我们来看二元的。字符串预置了+运算符,其实就是调用String.Concat方法来进行相加,经过反编译可得知,里面运算时将nul... 阅读全文

posted @ 2010-11-02 14:25 小小娟 阅读(416) 评论(1) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示