|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
BlackHole黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继
/*
依据〖中华国民共和国国度尺度GB11643-1999〗中有关国民身份号码的划定,国民身份号码是特性组合码,由十七位数字本体码和一名数字校验码构成。分列按次从左至右顺次为:六位数字地点码,八位数字出身日期码,三位数字按次码和一名数字校验码。
地点码暗示编码工具常住户口地点县(市、旗、区)的行政区划代码。诞辰期码暗示编码工具出身的年、月、日,个中年份用四位数字暗示,年、月、日之间不必分开符。按次码暗示统一地点码所标识的地区局限内,对同年、月、日出身的职员编定的按次号。按次码的奇数分给男性,偶数分给女性。校验码是依据后面十七位数字码,依照ISO7064:1983.MOD11-2校验码盘算出来的查验码。上面举例申明该盘算办法。
15位的身份证编码起首把出身年扩大为4位,复杂的就是增添一个19,可是这关于1900年出身的人不利用(如许的寿星未几了)
某男性国民身份号码本体码为34052419800101001,起首依照公式⑴盘算:
∑(ai×Wi)(mod11)……………………………………(1)
公式(1)中:
i----暗示号码字符从由至左包含校验码在内的地位序号;
ai----暗示第i地位上的号码字符值;
Wi----示第i地位上的加权因子,其数值根据公式Wi=2(n-1)(mod11)盘算得出。
i181716151413121110987654321
ai34052419800101001a1
Wi79105842163791058421
ai×Wi21360251616294800905002a1
依据公式(1)举行盘算:
∑(ai×Wi)=(21+36+0+25+16+16+2+9+48++0+0+9+0+5+0+0+2)=189
189÷11=17+2/11
∑(ai×Wi)(mod11)=2
然后依据盘算的了局,从上面的表中查出响应的校验码,个中X暗示盘算了局为10:
∑(ai×WI)(mod11)012345678910
校验码字符值ai10X98765432
依据上表,查出盘算了局为2的校验码为以是该职员的国民身份号码应当为34052419800101001X。
a[0]*7+a[1]*9+a[2]*10+a[3]*5+a[4]*8+a[5]*4+a[6]*2+a[7]*1+a[8]*6+a[9]*3
+a[10]*7+a[11]*9+a[12]*10+a[13]*5+a[14]*8+a[15]*4+a[16]*2
%11
when0then1when1then0when2thenXwhen3then9
when4then8when5then7when6then6when7then5
when8then4when9then3when10then2
*/
/*
以上为算法具体申明,上面是SQL的自界说函数,前往值为18位的校验码
*/
CreatefunctiongetCheckCode(@SFZHchar(18))
Returnschar(1)
As
Begin
declare@rchar(1)
declare@iint
iflen(@SFZH)18
set@r=?
else
set@i=cast(substring(@SFZH,1,1)asint)*7
+cast(substring(@SFZH,2,1)asint)*9
+cast(substring(@SFZH,3,1)asint)*10
+cast(substring(@SFZH,4,1)asint)*5
+cast(substring(@SFZH,5,1)asint)*8
+cast(substring(@SFZH,6,1)asint)*4
+cast(substring(@SFZH,7,1)asint)*2
+cast(substring(@SFZH,8,1)asint)*1
+cast(substring(@SFZH,9,1)asint)*6
+cast(substring(@SFZH,10,1)asint)*3
+cast(substring(@SFZH,11,1)asint)*7
+cast(substring(@SFZH,12,1)asint)*9
+cast(substring(@SFZH,13,1)asint)*10
+cast(substring(@SFZH,14,1)asint)*5
+cast(substring(@SFZH,15,1)asint)*8
+cast(substring(@SFZH,16,1)asint)*4
+cast(substring(@SFZH,17,1)asint)*2
set@i=@i-@i/11*11
set@r=(case@i
when0then1when1then0when2thenXwhen3then9
when4then8when5then7when6then6when7then5
when8then4when9then3when10then2else/end)
Return(@r)
End
/*Usage:
selectdbo.getcheckcode(身份证号)
*/
其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。 |
|