学习时报刊文:防民之口甚于防川

学习时报刊文:防民之口甚于防川

防民之口,甚于防川

  谈谈人民群众的历史决定作用

  作者:宋惠昌

  中国古代的历史常识告诉我们,在中国几千年的封建专制主义社会中,封建帝王是至高无上的,他对所有的臣民都有绝对的生杀大权。所以,一般的大臣,对皇帝只能是唯命是从,至于那些所谓“草民”,在国家政治生活中的地位,更是不值一提了。由此,有些人就得出了这样的结论:在封建社会中,是统治者决定国家的命运,而芸芸众生,对社会进步和历史发展,是起不了什么作用的。这样说来,历史唯物主义关于人民群众是历史发展的决定力量这个原理,在这个历史时期岂不是错误的了吗?其实,这个认识显然是片面的,因为就是在封建专制主义的时代,老百姓——人民群众——归根到底还是起决定性作用的。为了说明这个道理,这里引用我国的古典文献《国语》中的一部典籍,作些分析。其中《国语捠周语》中的《邵公谏历王弭谤》一文说:

  周厉王暴虐无道,国人纷纷指责他。贵族大臣邵穆公告诉他说:“人民已经忍受不了您的暴虐了。”厉王听了大怒,找来一个卫国的神巫,让他监视指责自己有过失的人。根据卫巫的报告,厉王就把被告发的人杀掉。于是,人们就不敢再有议论了,大家只能在相遇时彼此用眼睛示意而已。厉王高兴了,告诉邵公说:“我能消除对我的指责了,老百姓不敢说话了。”于是,邵公对周厉王讲了这样一番道理:“您这只不过是在用堵百姓口的办法罢了。不过您要知道‘防民之口,甚于防川’的道理啊!因为筑堤堵塞河水,而河水壅塞一旦溃决泛滥,结果会伤害更多的人,企图封住老百姓的嘴,这比堵塞江河的后果还要严重。因此,治水的人应该疏通河道,使水畅流无阻;统治者应该引导他们,使他们畅所欲言。……人有嘴巴;就好像大地有高山大河一样,国家的财富用度都从这里产生出来;又好像大地有平洼高低各种土地一样,人民衣食资源都从这里产生。让人说话,国家政事的好坏才能真正反映出来,从而能够推行善政、防范败亡,就能使百姓财用增多,丰衣足食。百姓们心里有意见,就要用口表达出来,这怎么可以堵塞呢?如果堵住百姓的嘴,不让说话,这样做是不能长久的啊!”周厉王根本听不进邵公的这些忠言劝告。这样,老百姓就不敢再说活了。但是,仅仅过了三年,周厉王就被驱逐到晋地去了。

  这个典故的寓意很深,它说明一个很重要的道理:无论是在什么时代,不要以为掌握了大权,就可以为所欲为,就能够把老百姓的嘴巴堵住;当然,这可能得逞于一时,但是,终归是要被老百姓赶下台的。一些古代的统治者在总结经验教训时常常说出这样的道理:“得民心者得天下,失民心者失天下”。所谓民意难违,就是说的这样一个基本道理。

  但是,我们现在有这样一些思想糊涂的领导干部,他们的思想水平几乎比那些明智的封建君主还要“落后”,他们对如下的信条深信不疑:有了权,就有了一切,谁掌握了权力,谁就能决定一切。所以,“人民群众是社会发展的决定性力量”,“人民群众是创造历史的根本动力”等说法,只不过是说说而已。这些人认为,芸芸众生,名义上是“国家主人”,其实只不过一些由当权者随意驱使的阿斗罢了。

  果真是这样的吗?从一时的现象上,也许可以能够得出这样的结论;但是,如果从比较长的历史发展过程来看,就未必是如此了。比如说,我国在“文化大革命”结束后开始的改革开放,农村由人民公社制度变为“联产承包责任制”,从根本上说,这是由广大农民群众的意志决定的,而不是上面什么人设计出来的。这就是说,国家的农业政策、农村的经济体制,归根到底是由农民的根本利益、农民的根本愿望决定的;这自然不是说领导者没有任何作用,但是,看一个领导者是不是高明,他能够在社会发展中起什么样的作用、起多大的作用,要看他究竟能够在多大程度上正确反映人民群众的意志!

  历史的发展一再告诉我们:那些不把人民群众放在眼里的领导者,人民群众也不会把他们放在心里!而且,说到底,他们的所谓“官运”,是由“民心”决定的!因为,归根到底,社会发展是由人民群众的意志决定的,人民群众是历史进步的真正动力。这是历史唯物主义的一个根本原理。

防空警报声介绍(附声音文件下载)

警报器的音响分三种:

  • 预先警报:

用途:预先警报是在敌方对我方攻击有预兆时发放,要求人员开始疏散。

鸣叫方式:鸣36秒,停24秒,3遍为一个周期。

示意图:

  • 空袭警报:

用途:空袭警报是在敌方对我方将要攻击时发放。

鸣叫方式:鸣6秒,停6秒,15遍为一个周期。

示意图:

  • 解除警报:

用途:解除警报是在空袭或战情暂时缓解时发放。

鸣叫方式:鸣3分钟为一个周期。

示意图:


附件:防空警报声下载(MP3格式,可点击鼠标右键另存为)

 

 


 

广告时间:

李和元参桂养脾散具有养脾健胃、开郁消食、增进食欲、温肾和肝、去湿利水、增强体质之功效。适应脾胃虚弱、水土不服、伤食伤酒引起的食欲不振、消化不良、腹泻呕吐、饮食绩滞、腕腹饱胀、嗳气吐酸之人群,老幼皆宜。

我们的淘宝小店:http://yclimw.taobao.com

小伙伴们为啥很快都忘了中学知识

最近,网上流行这样一个段子:“很多年前,我能做三角函数,解多元高次方程,会画大气环流图,能背化学元素表,知道小孔成像,看得懂电路图,能背很多文言文,英语语法也熟,知道植物细胞有细胞壁而动物细胞没有……现在我就是个文盲……”随着各地高考招生工作的展开,已经告别中学时代的学生们,是否会像上述段子讲的那样,从此与高中知识说再见了呢?(7月24日《中国青年报》)

继续阅读小伙伴们为啥很快都忘了中学知识

如何安全的存储密码

  过去一段时间来,众多的网站遭遇用户密码数据库泄露事件,这甚至包括顶级的互联网企业–NASDQ上市的商务社交网络Linkedin,国内诸如CSDN一类的就更多了。

  层出不穷的类似事件对用户会造成巨大的影响,因为人们往往习惯在不同网站使用相同的密码,一家“暴库”,全部遭殃。

  那么在选择密码存储方案时,容易掉入哪些陷阱,以及如何避免这些陷阱?我们将在实践中的一些心得体会记录于此,与大家分享。

如何安全的存储密码-1

  菜鸟方案

  直接存储用户密码的明文或者将密码加密存储。

  曾经有一次我在某知名网站重置密码,结果邮件中居然直接包含以前设置过的密码。我和客服咨询为什么直接将密码发送给用户,客服答曰:“减少用户步骤,用户体验更好”;再问“管理员是否可以直接获知我的密码”, 客服振振有词:“我们用XXX算法加密过的,不会有问题的”。 殊不知,密码加密后一定能被解密获得原始密码,因此,该网站一旦数据库泄露,所有用户的密码本身就大白于天下。

  以后看到这类网站,大家最好都绕道而走,因为一家“暴库”,全部遭殃。

  入门方案

如何安全的存储密码-2

  将明文密码做单向哈希后存储。

  单向哈希算法有一个特性,无法通过哈希后的摘要(digest)恢复原始数据,这也是“单向”二字的来源,这一点和所有的加密算法都不同。常用的单向哈希算法包括SHA-256,SHA-1,MD5等。例如,对密码“passwordhunter”进行SHA-256哈希后的摘要(digest)如下:
bbed833d2c7805c4bf039b140bec7e7452125a04efa9e0b296395a9b95c2d44c

  可能是“单向”二字有误导性,也可能是上面那串数字唬人,不少人误以为这种方式很可靠, 其实不然。

  单向哈希有两个特性:

  1)从同一个密码进行单向哈希,得到的总是唯一确定的摘要

  2)计算速度快。随着技术进步,尤其是显卡在高性能计算中的普及,一秒钟能够完成数十亿次单向哈希计算

  结合上面两个特点,考虑到多数人所使用的密码为常见的组合,攻击者可以将所有密码的常见组合进行单向哈希,得到一个摘要组合,然后与数据库中的摘要进行比对即可获得对应的密码。这个摘要组合也被称为rainbow table。

  更糟糕的是,一个攻击者只要建立上述的rainbow table,可以匹配所有的密码数据库。仍然等同于一家“暴库”,全部遭殃。以后要是有某家厂商宣布“我们的密码都是哈希后存储的,绝对安全”,大家对这个行为要特别警惕并表示不屑。有兴趣的朋友可以搜索下,看看哪家厂商躺着中枪了。

  进阶方案

如何安全的存储密码-3

  将明文密码混入“随机因素”,然后进行单向哈希后存储,也就是所谓的“Salted Hash”。

  这个方式相比上面的方案,最大的好处是针对每一个数据库中的密码,都需要建立一个完整的rainbow table进行匹配。 因为两个同样使用“passwordhunter”作为密码的账户,在数据库中存储的摘要完全不同。

  10多年以前,因为计算和内存大小的限制,这个方案还是足够安全的,因为攻击者没有足够的资源建立这么多的rainbow table。 但是,在今日,因为显卡的恐怖的并行计算能力,这种攻击已经完全可行。

  专家方案

如何安全的存储密码-4

  故意增加密码计算所需耗费的资源和时间,使得任何人都不可获得足够的资源建立所需的rainbow table。

  这类方案有一个特点,算法中都有个因子,用于指明计算密码摘要所需要的资源和时间,也就是计算强度。计算强度越大,攻击者建立rainbow table越困难,以至于不可继续。

  这类方案的常用算法有三种:

  1)PBKDF2(Password-Based Key Derivation Function)

  PBKDF2简单而言就是将salted hash进行多次重复计算,这个次数是可选择的。如果计算一次所需要的时间是1微秒,那么计算1百万次就需要1秒钟。假如攻击一个密码所需的rainbow table有1千万条,建立所对应的rainbow table所需要的时间就是115天。这个代价足以让大部分的攻击者忘而生畏。

  美国政府机构已经将这个方法标准化,并且用于一些政府和军方的系统。 这个方案最大的优点是标准化,实现容易同时采用了久经考验的SHA算法。

  2) bcrypt

  bcrypt是专门为密码存储而设计的算法,基于Blowfish加密算法变形而来,由Niels Provos和David Mazières发表于1999年的USENIX。

  bcrypt最大的好处是有一个参数(work factor),可用于调整计算强度,而且work factor是包括在输出的摘要中的。随着攻击者计算能力的提高,使用者可以逐步增大work factor,而且不会影响已有用户的登陆。

  bcrypt经过了很多安全专家的仔细分析,使用在以安全著称的OpenBSD中,一般认为它比PBKDF2更能承受随着计算能力加强而带来的风险。bcrypt也有广泛的函数库支持,因此我们建议使用这种方式存储密码

  3) scrypt

  scrypt是由著名的FreeBSD黑客 Colin Percival为他的备份服务 Tarsnap开发的。

  和上述两种方案不同,scrypt不仅计算所需时间长,而且占用的内存也多,使得并行计算多个摘要异常困难,因此利用rainbow table进行暴力攻击更加困难。scrypt没有在生产环境中大规模应用,并且缺乏仔细的审察和广泛的函数库支持。但是,scrypt在算法层面只要没有破绽,它的安全性应该高于PBKDF2和bcrypt。