2017年10月14日
摘要:
sed是所谓的流编辑器,我们经常用它来做一些文本替换的事情,这是sed最擅长的事情,如sed 's/Bob/Tom/g'就是把文章中所有的Bob改成Tom。 sed是图灵完备的,作为sed的粉丝,喜欢用sed做各种sed不擅长的事情,这里实现一下wc -w的功能,也就是统计文章单词数量。 我习惯喜欢
阅读全文
posted @ 2017-10-14 00:02
窗户
阅读(1737)
推荐(0)
2017年10月9日
摘要:
python可以使用MYSQLdb来操作数据库。 我们先来建数据库,其SQL语句如下: python操作数据库代码如下: 以上代码对于有无结果集,有多个结果集(存储过程)的SQL语句都是可以使用的。如果没有结果集,当然不需要cursor,自然也查不出结果集。 cursor.nextset()用于遍历
阅读全文
posted @ 2017-10-09 21:40
窗户
阅读(787)
推荐(0)
2017年10月8日
摘要:
WAF(Web Application Firewall, Web防火墙)的实现有多种手段,基于regex(Regular Expression,正则表达式),然后编译成一个大状态机是目前主流的方式。当然,阿拉云安全的主架构师讲了个ppt,直接说regex来做防火墙有不合理的地方,理由是使用rege
阅读全文
posted @ 2017-10-08 12:12
窗户
阅读(1174)
推荐(0)
2017年10月7日
摘要:
今天,我发现我的文章被人偷了, http://www.cnblogs.com/Colin-Cai/p/7594551.html 被以下给偷了。 http://www.sohu.com/a/195556009_729271 之所以称为被偷了,是因为我没有收到任何通知,文章中没有任何标明出处的文字。很气
阅读全文
posted @ 2017-10-07 21:40
窗户
阅读(752)
推荐(1)
2017年9月26日
摘要:
Python这些年风头一直很盛,占据了很多领域的位置,Web、大数据、人工智能、运维均有它的身影,甚至图形界面做的也很顺,乃至full-stack这个词语刚出来的时候,似乎就是为了描述它。 Python虽有GIL的问题导致多线程无法充分利用多核,但后来的multiprocess可以从多进程的角度来利
阅读全文
posted @ 2017-09-26 20:58
窗户
阅读(18888)
推荐(6)
2017年9月24日
摘要:
提到这个名字,很多人会想到前段时间让全世界振奋的围棋人工智能Alphago,想曾经我也了解过一些围棋的AI。我也正想花点时间说说alphago相关的东西,包括alphago的架构以及模型引申等,不过这篇文章里我只说围棋规则的实现,和人工智能无关。 规则 说到围棋规则的实现不得不先说围棋规则,一般来说
阅读全文
posted @ 2017-09-24 16:43
窗户
阅读(5553)
推荐(0)
2017年9月21日
摘要:
使用urllib和urllib2,可以轻松实现对http的访问。 以下给个例子,实现对http://127.0.0.1/cgi/test的GET与POST 使用的是平常意义上的query string POST接受json 其中, urllib2的Request方法如果只带一个参数是GET方法,但如
阅读全文
posted @ 2017-09-21 12:07
窗户
阅读(4900)
推荐(0)
2017年9月6日
摘要:
想起曾几何时,学习的第一个UNIX-like操作系统。只可惜,从来都是在此操作系统上用C语言编程,而没有用过Sun公司的java。 又几何时,Sun公司慢慢不行了。再后来过了几年,Sun公司把UltraSPARC T1处理器的设计公开了,至今我的硬盘里还保留着其代码,是当初下载下来的,也看了不少,当
阅读全文
posted @ 2017-09-06 21:13
窗户
阅读(198)
推荐(0)
2017年9月2日
摘要:
以上是一个示例,测试了私钥加密(签名)/公钥解密(验证),main函数是一个测试 测试一下,先生成2048位公钥、私钥对 编译、文件测试 对比一下 公钥加密、私钥解密就不写了,对着看就会很明白了。 int RSA_public_encrypt(int flen, const unsigned cha
阅读全文
posted @ 2017-09-02 15:44
窗户
阅读(3488)
推荐(0)
2017年8月26日
摘要:
此处所谓求逆运算,是指在模乘群里求逆。 第一节里提到互质的两个定义: (1)p,q两整数互质指p,q的最大公约数为1。 (2)p.q两整数互质指存在整数a,b,使得ap+bq=1。 只要明白了欧几里得算法,很容易就可以求出两整数的最大公约数,而这是一个小学时候就学习到的算法。这个算法有个可能让我们更
阅读全文
posted @ 2017-08-26 14:23
窗户
阅读(2689)
推荐(0)
2017年8月13日
摘要:
要生成RSA的密钥,第一步就是要寻找质数,本节专讲如何寻找质数。 我们的质数(又称素数)、合数一般是对正整数来讲,质数就是只有1和本身两个的正整数,合数至少有3个约数,而1既不是合数也不是质数。 质数有无穷多个,这个早在古希腊时期就被证明了,使用反证法很容易证明:假设质数只有有限多,分别为a1...
阅读全文
posted @ 2017-08-13 20:16
窗户
阅读(1806)
推荐(0)
2017年8月6日
摘要:
RSA最终加密、解密都要用到模乘的幂运算,简称模幂运算。 回忆一下RSA,从明文A到密文B B=Ae1%N 对B解密回到明文A,就是 A=Be2%N 其中,一般来说,加密公钥中的e1一般会比较小,取65537居多,但解密的时候,这个e2是一个非常非常大的数,显然,直接通过e2次模乘来解密是不现实的。
阅读全文
posted @ 2017-08-06 17:33
窗户
阅读(3362)
推荐(0)
2017年8月3日
摘要:
RSA是最常用的非对称加密算法。 所谓非对称加密,就是说有两个密钥,一个密钥加密只可以用另外一个密钥解密,一般一个作为公钥,公开给所有人用来加密用,而另一个用来解密其他拥有公钥的加密结果,叫做私钥。另外,拥有私钥者可以用私钥加密信息,公钥可以解密获得加密内容,从而验证私钥拥有者的身份,这是一种特殊的
阅读全文
posted @ 2017-08-03 23:14
窗户
阅读(1511)
推荐(0)
2017年7月25日
摘要:
了解了浮点数的存储以及手算平方根的原理,我们可以考虑程序实现了。 先实现一个64位整数的平方根,根据之前的手算平方根,程序也不是那么难写了。 其实,可以合在一起写,代码会短一些,但效率会低那么一点点,而且编译器应该不太容易优化。 不过,我们不需要这个结果。 为了验证其正确性,我们来写个C语言的mai
阅读全文
posted @ 2017-07-25 23:41
窗户
阅读(7591)
推荐(0)
摘要:
一个函数从数学上来说可以有无数个函数列收敛于这个函数,那么程序逼近实现来说可以有无数种算法,平方根自然也不例外。 不知道有多少人还记得手算平方根,那是满足每次在结果上添加一位,也就是按位逼近运算结果的唯一算法。至于数学上如何证明这个唯一性我就不说了,数学证明不会有那么多人有兴趣。按位逼近更加适合手算
阅读全文
posted @ 2017-07-25 23:41
窗户
阅读(3926)
推荐(0)