用Excel函数公式升位15位、校验18位居民身份证号码

我在培训班讲课的内容,在这里再简单的说一下:

根据国标,18位身份证号码的最后一位是校验码,这位校验码是由前面17位数字经过数学运算得出来的,通过这位校验码,可以检测出18位数字是否存在录入错误,具体的算法如下:

1. 17位数字自身加权求和,公式是S=SUM(Ai*Wi), (0<i<18)这里的i也就是第1~17位的索引,比如A1就是第1个数字,依次类推。Wi是加权因子,对应的也是17位,数值是{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2},也就是说身份证号码前17位依次与这里17位相乘,最后求和,求和的结果为S。

2. 求余(求模),将S与11求模。Y=MOD(S,11),得到Y。

3. 通过Y的值查找表{1,0,X,9,8,7,6,5,4,3,2},最后得到校验位,为什么会有X,X是罗马数字10,因为10是两位,所以只好用X代替,但是不要认为带有X的身份证号码是错误的哦,还有不要将身份证号码字段设计成数字的哦。 好,有了上面的算法,简单的来说Excel函数也就知道怎么写了:

Posted in:
  • 计算机应用及维护
  • Windows系统
Tagged
  • excel
  • 身份证

Ubuntu Linux下锐捷(Ruijie Supplicant)的安装

昨天有读者和我询问以前网站上一篇介绍Linux下锐捷(Ruijie Supplicant)的安装和使用的文章的,本来以为更换博客后转过来的,今天翻了翻博客上的文章,确实漏掉了这一篇,暂且补上吧,具体还能不能用就不清楚了,毕竟已经离开学校了,用不到锐捷了。

原文发表于2008年10月24日,已做修改。安装环境为Ubuntu 8.04

首先到 锐捷官方网站 上, 下载Supplicant For Linux V1.1.1.rar (官网上找不到下载了,要下载的童鞋看本文章最后附录下载地址),然后解压得到xrgsu可执行文件,执行 sudo cp xrgsu /usr/bin 将xrgsu拷贝到/usr/bin目录下,然后执行 sudo chmod 777 /usr/bin/xrgsu 赋予相应权限。

执行 sudo xrgsu -d 出现错误,说的是缺少libpcap.so.0.6.2和libstdc++.so.5库文件,这时我们需要下载这些库,并且使用 sudo cp libpcap.so.0.6.2 /usr/lib sudo cp libstdc++.so.5 /usr/lib 将其复制到/usr/lib下。再次运行 sudo xrgsu -d ,填入帐号密码,使用默认Default,连接,成功!

下面我将官方的锐捷xrgsu,libpcap.so.0.6.2和libstdc++.so.5库文件,打包到一起, 下载地址1(国外线路BOX.NET) 或者 下载地址2(国外线路Min.us)

Posted in:
  • 计算机应用及维护
  • Unix/Linux/BSD系统
Tagged
  • Linux
  • 拨号上网

由My English is poor联想到

最近接触了一些国外域名业务,也和老外打了一定的交道,当然本人英语很菜,大部分交流还是要借助于谷歌翻译,一般来说都是先自己草拟一份大概意思的英文稿件,然后用谷歌翻译成中文,看看意思是否相近,有些常用语就直接在网上搜索最标准的说法,基本上这样老外能看懂,国外的客服给我的印象大多都是客客气气的,估计和国外激烈的行业竞争有关系,有话只要好好说基本上都能解决,不过最近有不少国外的域名主机商对国内开始关紧了大门,很多优惠政策开始限制国内或者中国区域的直接享受不到,这恐怕和国内很多喜欢贪小便宜的人有关,我觉得什么东西只要自己够用就可以了,没有必要购买申请一堆自己用不着的东西,很多人看到别人去注册申请了,自己也忍不住去注册申请,一开始我也有这种想法,但是自己想想这些域名、主机空间虽说便宜,但是自己又没有什么好的域名可以投资,也没有做站计划,这样的机会应该让给更需要的人们,不应该浪费钱财又消耗资源。当然如果你是正当的用户,对于这些优惠的资源,你可以正常申请,如果对方错封锁了你的账号,收回了你所申请的资源,你也不要激动,只要有话好好说,基本上都能解决,不要发什么F**k之类的邮件过去,这样无助于问题的解决,而且更恶化了国人的形象。

Posted in:
  • 我的生活点滴
Tagged
  • 主机域名
  • 学习笔记

Tucows旗下Hover.com域名注册支持PayPal了

貌似前天就收到 Hover.com 的邮件了,简单介绍一下Hover.com,大家可能对其比较陌生,但是关注国外域名注册的童鞋肯定对其上家比较熟悉,它的上家就是加拿大著名的软件服务与域名注册商Tucows,目前域名保有量世界排名第三。Oracle甲骨文公司的域名也全部托管在他们家,当然甲骨文申请的是Tucows的代理,自己代理自己旗下品牌的域名,由此可见Tucows实力不同一般。Hover是Tucows旗下域名代理注册公司,隶属于Tucows,那么信誉还是有保障的,国内豆瓣(douban.com)貌似就是在他们家注册的,唯一遗憾的是很长一段时间Hover只支持信用卡付款,虽然他们家是大公司很可靠,但是我们最好还是不要乱泄露信用卡信息,所以PayPal是不错的选择,他们家很早就承诺会考虑支持PayPal,没想到现在已经谈妥,可以使用PayPal了,我尝试了一下,暂时只支持绑定信用卡的PayPal支付,不支持银联支付。

选择他们家首先是安全可靠,据说服务也不错,貌似提供免费的Whois隐私信息保护隐藏服务,略有遗憾的是价格略高,gTLD转入10美元,续费15美元,不知道以后会不会降下来,另外据有童鞋反映,他们家域名转出略有麻烦,我没有试过,也不太清楚了,不过大家还是综合考虑一下吧。

Posted in:
  • 软件推荐及相关资讯
  • 域名主机相关
  • Web开发及相关
Tagged
  • 主机域名
  • 在线支付

配置SQL Server 2008遇到了问题

忙了一天,一身的疲惫,不过杯具的是客户的问题没能解决,主要是网络升级,替换更新服务器设备,本来的设想是新服务器通过3块网卡,1块做Internet端口,另外两块分别作办公网络和宿舍网络,外部卫星节点通过VPN访问服务器内部资源,由于客户预算有限,暂时仅购入一台机架服务器,所以之前想把数据库和ISA/TMG防火墙分开的构想破灭了,所以这台服务器既要承担网关防火墙也要承担数据库的功能,所以根据原先业务系统的配置,选用了Windows 2008 Server R2+TMG2010+SQL Server 2008做试验性网络,为了便于管理和故障恢复,通过Hyper-V虚拟出两台服务器,一台服务内网财务系统、OA办公和协作同步;一台用于对外发布Web等服务。另外VPN也接入内网虚拟机享用内网办公资源,但是宿舍网络要与办公网络进行物理隔离,这里就靠TMG了。整个网络除了要合理分配流量带宽外,宿舍网络还要进行一定的管控设置,包括记录日志等,为了规范上网行为,起初设想是通过PPPoE拨号实现,苦于Windows这方面资料比较匮乏,没能实现,第二方案是准备启用VPN进行访问控制,好,这些都是后话了,主要是要把整个办公业务系统成功上线。

准确的说今天早上和partner还效率很高的分好了网线,成功将设想好的网络运行起来,而且两台虚拟机也能正常访问。本来以为一路顺风,下午所有网络就应该全部上线。下午partner临时有事就没有来,结果我一个人进行旧服务器数据迁移工作,结果杯具的事情发生了,迁移到内网虚拟机的财务系统无法连接,一开始以为是防火墙原因,查看了日志,更新了访问规则,但问题依旧,电话问partner,他说开始安装SQL Server 2008时应该选择兼容模式,就是要兼容SQL Server 2005甚至SQL Server 2000,想想也是,原先的业务系统数据库有的运行在SQL Server 2000上,有的运行在SQL Server 2005上,而这些系统数据库访问件肯定没有按照SQL Server 2008设计,所以连接不了。我问有没有补救的办法,他说除了安装时选择他还真没找到什么办法。

Posted in:
  • 计算机应用及维护
  • Windows系统
Tagged
  • sqlserver
  • 网络组建

JavaScript类似于eval加密编码方式的解密解码过程(Unpack)

类似于下面这样的代码,肯定你在研究前端JavaScript脚本时遇到过:

eval(function(p,a,c,k,e,r){
e=String;if(!''.replace(/^/,String))
{while(c--)r[c]=k[c]||c;
k=[function(e){return r[e]}];
e=function(){return'\\w+'};
c=1};while(c--)if(k[c])
p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),
k[c]);return p}
('0("1 2");',3,3,
'alert|Hello|World'.split('|'),0,{}))

很多朋友以为这段代码是“加密”的,其实这也谈不上是加密,只能算是一种编码(Encode)或者也可以成为是一种打包(packer),类似于base64这样的编码,都是可以以一定方式还原的,当然也就是“解密”了。

我们仔细分析这一段代码,不难发现代码开头都是eval,特征字符串是function(p,a,c,k,e,r)或者是function(p,a,c,k,e,d),其实这样的pack方式是dean edwards提出的,你可以 访问其个人主页 以获取这方面的最新信息。后来还有一些编码打包方式也是eval开头,但是特征字符串p,a,c,k,e,r(d)改变了,我们姑且称为是这种打包方式的一个变种吧,其实解码很简单,我们回顾一下JavaScript脚本中eval含义及用法。

Posted in:
  • 前端开发与用户体验
  • Web开发及相关
Tagged
  • 加密与编码
  • javascript

VBScript修改Windows远程协助桌面连接默认3389端口

最近在配置一台Windows Server 2008 R2的服务器,本来想装上个VNC的,不过想想Windows自带有远程桌面,就没必要这么麻烦了,于是开启了远程桌面访问,并且在TMG防火墙规则中配置了RDP(Terminal Services) Server规则,一切都很顺利,当路由器上映射完3389端口后,客户端成功访问并且连接! 可是过了一段时间发现,远程连接被断开,局域网连接仍然可以,外网死活都连接不上,于是查阅了TMG防火墙日志,发现有段大量不同IP尝试连接3389的记录,并且被TMG侦测为FLOOD攻击,所以拒绝了所有的外网请求,看来不能用默认的3389端口了,所以要更改默认的远程端口,具体怎么改,其实在Windows XP时代我就尝试着找可以改动的图形化界面,可是一直找不到最后还是修改注册表才更改成功。貌似现在在Win2008时代依旧不能找到图形化修改界面,看来又要修改注册表了。主要修改以下两条注册表信息的PortNamber值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp\

为了避免以后再遇到这类问题,我觉得有必要写个脚本来解决。我们知道在VBScript中修改注册表有两种方式,第一种是使用组件WScript.Shell的RegWrite方法,遗憾的是这种方式常常会使杀毒软件误认为是病毒,因为有段时间WScript.Shell在网页挂马技术上很是流行,导致现在很多安全软件都封杀或者重点监控这个ActvieX组件。第二种是使用WMI方式,这个是我比较推荐的,下面的脚本将说明这些问题。

在提供脚本之前,大家可以到微软的 脚本中心 参考一下WMI操作注册表的一些方法。

Posted in:
  • 计算机应用及维护
  • VBScript/JavaScript/Python
  • Windows系统
  • 系统应用程序开发
Tagged
  • vbscript
  • 网络安全
  • 远程控制

解决Smarty模板中CSS导致的SmartyCompilerException问题

今天在项目中应用Smarty模板引擎时遇到的问题,PHP解析出错,主要定位在CSS部分,错误形如“Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template”。仔细分析了下,发现是嵌入HTML的CSS {}花括号与Smarty的界定符号{}花括号冲突,如果简单地将CSS标记嵌入到HTML文档首部,将导致“不可识别标记”错误,经过搜索得到三种办法以解决这个问题:

1. 外链CSS文件。 利用link外链层叠样式表文件。例如:

<link href="style.css" type="text/css" rel="stylesheet" />

2. 使用literal标记。 利用Smarty独有的literal标记区分不需要解析的区域,用标记{literal}和{/literal}包含起来的区域Smarty将跳过分析直接输出,这样就不会导致冲突了。

{literal}
<style type="text/css">
body {
 color:#FFF;
}
</style>
{/literal}

3. 修改Smarty的默认定界符。 通过设置left_delimiter和right_delimiter属性来实现这一目的。

require("Smarty.class.php");
$template = new Smarty;
$template->left_delimiter = '<{';
$template->right_delimiter = '}>';

第3种方法的缺点就是要改原有模板的解析标签,比较麻烦,推荐第1种和第2种灵活搭配使用。

Posted in:
  • 网络编程与数据库
  • Web开发及相关
Tagged
  • php
  • 模板引擎

飞利浦(PHILIPS) XB-760 手写板驱动及识别软件

今天同事要我帮忙找他的一个手写板驱动及识别软件,我一看是个很旧型号的手写板,一看牌子,竟然还是飞利浦的,我想大牌子嘛,肯定会找到驱动的,但是网上一搜索,竟然找不到可以下载的驱动,神马驱动精灵还是驱动人生的驱动识别软件也不给力了。恐怕是因为这个手写板确实很旧了吧,于是我到飞利浦的官方网站上去找,没想到的是官方网站上也找不到,甚至飞利浦网站压根就没有手写板这个栏目,结合网上一些网友反映,他们咨询飞利浦客服,他们答复没有生产过此类产品,难道这是个山寨货?我也不得而知了,搜索网络得知貌似还有XB-100、XB-200、XB-400、XB-780和XB-820型号,看来产品线挺长的,但是这款驱动和手写识别程序是找不到了,于是我想到了万能驱动,很久前家里一台老式电脑,最后就是用的VIA万能驱动才装好的,我就试着找找看手写板有没有万能驱动或者手写识别软件,没想到还真让我找到了。

兰亭科技公司提供的 兰亭万用手写板驱动程序 。可以正确识别这款XB-760手写板,而且各项功能不错,不能奢求太多啦,至少这款手写板还能用吧。

Posted in:
  • 计算机应用及维护
  • Windows系统
Tagged
  • 驱动故障
  • 手写板

让Typecho分页、页码样式显示统计数目等信息

可能有人觉得单纯的分页显得很单调,正好今天有网友问我Typecho如何实现类似我这个文章分页的统计信息的问题。那我就把方法与大家分享一下吧。

这个不是主题实现的,而是要修改原有代码的,首先打开位于/var/Typecho/Widget/Helper/PageNavigator/目录下的Box.php文件。定位到大概34行render函数,我改的如下所示:

Posted in:
  • 网络编程与数据库
  • Web开发及相关
Tagged
  • typecho
  • 分页

© Wang Ye / 王 晔. All rights reserved.