CN115169289B - 一种用于安防门禁上的信息压缩编码解码方法及装置 - Google Patents
一种用于安防门禁上的信息压缩编码解码方法及装置 Download PDFInfo
- Publication number
- CN115169289B CN115169289B CN202211076188.9A CN202211076188A CN115169289B CN 115169289 B CN115169289 B CN 115169289B CN 202211076188 A CN202211076188 A CN 202211076188A CN 115169289 B CN115169289 B CN 115169289B
- Authority
- CN
- China
- Prior art keywords
- social security
- security card
- card number
- number display
- initial
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C9/00—Individual registration on entry or exit
- G07C9/20—Individual registration on entry or exit involving the use of a pass
- G07C9/22—Individual registration on entry or exit involving the use of a pass in combination with an identity check of the pass holder
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Credit Cards Or The Like (AREA)
Abstract
本申请提供一种用于安防门禁上的信息压缩编码解码方法及装置,包括:编码阶段以及解码阶段;其中,编码阶段包括:读取居民社保卡公开信息字符,将其中省级行政区划识别码按照行政区代码表作为整体转化为初始行政显示符;将社保卡号中的每一位字符按照预先确定的社保卡号压缩编码表,转化为初始社保卡号显示符;将每一初始社保卡号显示符中划分为高位社保卡号显示符,以及低位社保卡号显示符,并对所有高位社保卡号显示符以及低位社保卡号显示符进行拼接;进行十六进制转换,得到编码结果。本申请解决了包含F之后的字母及长度不能适配目前传输协议的问题。
Description
技术领域
本申请涉及信息压缩编码技术领域,特别涉及一种用于安防门禁上的信息压缩编码解码方法及装置。
背景技术
在安防门禁领域广泛使用各种类型的实体卡片或虚拟电子二维码作为身份认证的介质,接口协议通常使用韦根(Wiegand)协议,它是国际上统一的标准通讯协议,由摩托罗拉公司制定。韦根协议虽然没有定义传输的数据长度,但现在应用最多的是WG26bit、WG34bit和WG66bit。对于WG26,第1位为第2位~第13位的偶校验位,第26位为第14位~第25位的奇校验位。WG26可以传输3字节数据。对于WG34,第1位为第2位~第17位的偶校验位,第34位为第18位~第33位的奇校验位。WG34可以传输4字节数据。对于WG66,第1位为第2位~第33位的偶校验位,第66位为第34位~第65位的奇校验位。WG66可以传输8字节数据。
韦根协议的优点是简单、通用、成本低、技术对接容易。但目前大量使用的安防门禁控制器,通过读取智能卡信息(卡号用纯数字或十六进制表示),只支持WG26、WG34和WG66协议,且不支持英文字母表中F之后的字母;对于数据长度大于8字节的应用,例如居民社保卡的卡信息数据长度为15个字符(社保卡号包含字母表中F之后的字母),就不能直接用WG66协议来传输,导致安防门禁领域内部分社保卡号无法正常显示的问题。
发明内容
本申请提供了一种用于安防门禁上的信息压缩编码解码方法及装置,可用于解决居民社保卡的卡信息数据不能直接用WG66协议来传输的技术问题。
第一方面,本申请提供了一种用于安防门禁上的信息压缩编码解码方法,所述方法包括:
编码阶段以及解码阶段;
其中,编码阶段包括:
读取居民社保卡公开信息字符,将其中省级行政区划识别码按照行政区代码表作为整体转化为8bit二进制的初始行政显示符;所述取居民社保卡包括6个字符的行政区划代码以及每个直辖市、自治区内的每张卡唯一的9个字符的社保卡号;
将社保卡号中的每一位字符按照预先确定的社保卡号编码表,转化为6bit二进制初始社保卡号显示符;其中字符从0至z依次对应数字0至61;
将每一初始社保卡号显示符划分为高位社保卡号显示符,以及低位社保卡号显示符,并对所有高位社保卡号显示符以及低位社保卡号显示符进行拼接;
按照高位社保卡号显示符、初始行政显示符以及低位社保卡号显示符的顺序将三者进行拼接,并进行补位处理,以及十六进制转换,得到编码结果;
解码过程包括:
读取编码结果,进行二进制转码得到初始解码符;
对初始解码符进行划分,得到第一中间字符、第二中间字符以及第三中间字符;
对第一中间字符以及第三中间字符进行拆解以及重组处理,对重组后的字符进行解码,得到居民社保卡号字符;
对第二中间字符按照行政区代码表进行解码,得到对应的行政区划识别码。
结合第一方面,在第一方面的一种可实现方式中,将初始社保卡号显示符中划分为高位社保卡号显示符,以及低位社保卡号显示符,并对所有高位社保卡号显示符以及低位社保卡号显示符进行拼接,包括:
将初始社保卡号显示符中的前两位作为高位社保卡号显示符,将初始社保卡号显示符中的后四位作为低位社保卡号显示符;
所有高位社保卡号显示符按照社保卡号中原字符的顺序进行拼接,所有低位社保卡号显示符按照社保卡号中原字符的顺序进行拼接。
结合第一方面,在第一方面的一种可实现方式中,按照高位社保卡号显示符、初始行政显示符以及低位社保卡号显示符的顺序将三者进行拼接,并进行补位处理,以及十六进制转换,得到编码结果,包括:
按照高位社保卡号显示符、初始行政显示符以及低位社保卡号显示符的顺序将三者进行拼接;
在高位社保卡号显示符之前两位用0进行补位,得到初始编码结果;
将初始编码结果按照每4位为一字符进行十六进制转换,得到编码结果。
结合第一方面,在第一方面的一种可实现方式中,对初始解码符进行划分,得到第一中间字符、第二中间字符以及第三中间字符,包括:
取初始解码符中的第3位至第20位得到第一中间字符;取第21位至第28位得到第二中间字符,取第29位至第64位得到第三中间字符。
结合第一方面,在第一方面的一种可实现方式中,对第一中间字符以及第三中间字符进行拆解以及重组处理,对重组后的字符进行解码,得到居民社保卡字符,包括:
将第一中间字符以每两位为一单元进行顺序排序,第三中间字符以每四位为一单元进行顺序排序;
将第一中间字符与第三中间字符中排序序号相同的单元进行拼接,按照社保卡号编码表进行解码,得到对应的居民社保卡号字符。
结合第一方面,在第一方面的一种可实现方式中,社保卡号编码表如下所示:
序号 | 字符 | 初始社保卡号显示符 | 序号 | 字符 | 初始社保卡号显示符 |
0 | 0 | 00 0000 | 31 | V | 01 1111 |
1 | 1 | 00 0001 | 32 | W | 10 0000 |
2 | 2 | 00 0010 | 33 | X | 10 0001 |
3 | 3 | 00 0011 | 34 | Y | 10 0010 |
4 | 4 | 00 0100 | 35 | Z | 10 0011 |
5 | 5 | 00 0101 | 36 | a | 10 0100 |
6 | 6 | 00 0110 | 37 | b | 10 0101 |
7 | 7 | 00 0111 | 38 | c | 10 0110 |
8 | 8 | 00 1000 | 39 | d | 10 0111 |
9 | 9 | 00 1001 | 40 | e | 10 1000 |
10 | A | 00 1010 | 41 | f | 10 1001 |
11 | B | 00 1011 | 42 | g | 10 1010 |
12 | C | 00 1100 | 43 | h | 10 1011 |
13 | D | 00 1101 | 44 | i | 10 1100 |
14 | E | 00 1110 | 45 | j | 10 1101 |
15 | F | 00 1111 | 46 | k | 10 1110 |
16 | G | 01 0000 | 47 | l | 10 1111 |
17 | H | 01 0001 | 48 | m | 11 0000 |
18 | I | 01 0010 | 49 | n | 11 0001 |
19 | J | 01 0011 | 50 | o | 11 0010 |
20 | K | 01 0100 | 51 | p | 11 0011 |
21 | L | 01 0101 | 52 | q | 11 0100 |
22 | M | 01 0110 | 53 | r | 11 0101 |
23 | N | 01 0111 | 54 | s | 11 0110 |
24 | O | 01 1000 | 55 | t | 11 0111 |
25 | P | 01 1001 | 56 | u | 11 1000 |
26 | Q | 01 1010 | 57 | v | 11 1001 |
27 | R | 01 1011 | 58 | w | 11 1010 |
28 | S | 01 1100 | 59 | x | 11 1011 |
29 | T | 01 1101 | 60 | y | 11 1100 |
30 | U | 01 1110 | 61 | z | 11 1101 |
其中,字符从0至z依次对应数字0至61,将每一字符对应到目标数字上,再将目标数字转化为6bit二进制表现形式。
结合第一方面,在第一方面的一种可实现方式中,行政区代码表如下所示:
编码 | 省级区划 | 初始行政显示符 | 序号 | 省级区划 | 初始行政显示符 |
11 | 北京市 | 0000 1011 | 43 | 湖南省 | 0010 1011 |
12 | 天津市 | 0000 1100 | 44 | 广东省 | 0010 1100 |
13 | 河北省 | 0000 1101 | 45 | 广西壮族自治区 | 0010 1101 |
14 | 山西省 | 0000 1110 | 46 | 海南省 | 0010 1110 |
15 | 内蒙古自治区 | 0000 1111 | 50 | 重庆市 | 0011 0010 |
21 | 辽宁省 | 0001 0101 | 51 | 四川省 | 0011 0011 |
22 | 吉林省 | 0001 0110 | 52 | 贵州省 | 0011 0100 |
23 | 黑龙江省 | 0001 0111 | 53 | 云南省 | 0011 0101 |
31 | 上海市 | 0001 1111 | 54 | 西藏自治区 | 0011 0110 |
32 | 江苏省 | 0010 0000 | 61 | 陕西省 | 0011 1101 |
33 | 浙江省 | 0010 0001 | 62 | 甘肃省 | 0011 1110 |
34 | 安徽省 | 0010 0010 | 63 | 青海省 | 0011 1111 |
35 | 福建省 | 0010 0011 | 64 | 宁夏回族自治区 | 0100 0000 |
36 | 江西省 | 0010 0100 | 65 | 新疆维吾尔自治区 | 0100 0001 |
37 | 山东省 | 0010 0101 | 71 | 台湾省 | 0100 1000 |
41 | 河南省 | 0010 1001 | 81 | 香港特别行政区 | 0101 0001 |
42 | 湖北省 | 0010 1010 | 82 | 澳门特别行政区 | 0101 0010 |
其中,行政区划识别码为社保卡发行地行政区划代码前两位,将行政区划识别码转化为8bit二进制初始行政显示符。
第二方面,本申请提供了一种用于安防门禁上的信息压缩编码解码装置,所述装置包括:
编码阶段模块以及解码模块;
其中,编码模块用于:
读取居民社保卡字符,将其中省级行政区划识别码按照行政区代码表作为整体转化为8bit二进制的初始行政显示符 ;所述取居民社保卡包括6个字符的行政区划代码以及每个直辖市、省、自治区内的每张卡唯一的9个字符的社保卡号;
以及将社保卡号中的每一位字符按照预先确定的社保卡号编码表,转化为6bit二进制初始社保卡号显示符;其中字符从0至z依次对应数字0至61;
以及将每一初始社保卡号显示符划分为高位社保卡号显示符,以及低位社保卡号显示符,并对所有高位社保卡号显示符以及低位社保卡号显示符进行拼接;
以及按照高位社保卡号显示符、初始行政显示符以及低位社保卡号显示符的顺序将三者进行拼接,并进行补位处理,以及十六进制转换,得到编码结果;
解码模块用于:
读取编码结果,进行二进制转码得到初始解码符;
以及对初始解码符进行划分,得到第一中间字符、第二中间字符以及第三中间字符;
以及对第一中间字符以及第三中间字符进行拆解以及重组处理,对重组后的字符进行解码,得到居民社保卡号字符
以及对第二中间字符按照行政区代码表进行解码,得到对应的行政区划识别码。
结合第二方面,在第二方面的一种可实现方式中,编码模块具体用于:
将初始社保卡号显示符中的前两位作为高位社保卡号显示符,将初始社保卡号显示符中的后四位作为低位社保卡号显示符;
所有高位社保卡号显示符按照社保卡号中原字符的顺序进行拼接,所有低位社保卡号显示符按照社保卡号中原字符的顺序进行拼接。
结合第二方面,在第二方面的一种可实现方式中,解码模块具体用于:
按照高位社保卡号显示符、初始行政显示符以及低位社保卡号显示符的顺序将三者进行拼接;
在高位社保卡号显示符之前两位用0进行补位,得到初始编码结果;
将初始编码结果按照每4位为一字节进行十六进制转换,得到编码结果。
结合第二方面,在第二方面的一种可实现方式中,解码模块具体用于:
取初始解码符中的第3位至第20位得到第一中间字符。取第21位至第28位得到第二中间字符,取第29位至第64位得到第三中间字符。
结合第二方面,在第二方面的一种可实现方式中,解码模块具体用于:
将第一中间字符以每两位为一单元进行顺序排序,第三中间字符以每四位为一单元进行顺序排序。
将第一中间字符与第三中间字符中排序序号相同的单元进行拼接,按照社保卡号编码表进行解码,得到对应的居民社保卡号字符。
结合第二方面,在第二方面的一种可实现方式中,社保卡号编码表如下所示:
序号 | 字符 | 初始社保卡号显示符 | 序号 | 字符 | 初始社保卡号显示符 |
0 | 0 | 00 0000 | 31 | V | 01 1111 |
1 | 1 | 00 0001 | 32 | W | 10 0000 |
2 | 2 | 00 0010 | 33 | X | 10 0001 |
3 | 3 | 00 0011 | 34 | Y | 10 0010 |
4 | 4 | 00 0100 | 35 | Z | 10 0011 |
5 | 5 | 00 0101 | 36 | a | 10 0100 |
6 | 6 | 00 0110 | 37 | b | 10 0101 |
7 | 7 | 00 0111 | 38 | c | 10 0110 |
8 | 8 | 00 1000 | 39 | d | 10 0111 |
9 | 9 | 00 1001 | 40 | e | 10 1000 |
10 | A | 00 1010 | 41 | f | 10 1001 |
11 | B | 00 1011 | 42 | g | 10 1010 |
12 | C | 00 1100 | 43 | h | 10 1011 |
13 | D | 00 1101 | 44 | i | 10 1100 |
14 | E | 00 1110 | 45 | j | 10 1101 |
15 | F | 00 1111 | 46 | k | 10 1110 |
16 | G | 01 0000 | 47 | l | 10 1111 |
17 | H | 01 0001 | 48 | m | 11 0000 |
18 | I | 01 0010 | 49 | n | 11 0001 |
19 | J | 01 0011 | 50 | o | 11 0010 |
20 | K | 01 0100 | 51 | p | 11 0011 |
21 | L | 01 0101 | 52 | q | 11 0100 |
22 | M | 01 0110 | 53 | r | 11 0101 |
23 | N | 01 0111 | 54 | s | 11 0110 |
24 | O | 01 1000 | 55 | t | 11 0111 |
25 | P | 01 1001 | 56 | u | 11 1000 |
26 | Q | 01 1010 | 57 | v | 11 1001 |
27 | R | 01 1011 | 58 | w | 11 1010 |
28 | S | 01 1100 | 59 | x | 11 1011 |
29 | T | 01 1101 | 60 | y | 11 1100 |
30 | U | 01 1110 | 61 | z | 11 1101 |
其中,字符从0至z依次对应数字0至61,将每一字符对应到目标数字上,再将目标数字转化为6bit二进制表现形式。
结合第二方面,在第二方面的一种可实现方式中,行政区代码表如下所示:
编码 | 省级区划 | 初始行政显示符 | 序号 | 省级区划 | 初始行政显示符 |
11 | 北京市 | 0000 1011 | 43 | 湖南省 | 0010 1011 |
12 | 天津市 | 0000 1100 | 44 | 广东省 | 0010 1100 |
13 | 河北省 | 0000 1101 | 45 | 广西壮族自治区 | 0010 1101 |
14 | 山西省 | 0000 1110 | 46 | 海南省 | 0010 1110 |
15 | 内蒙古自治区 | 0000 1111 | 50 | 重庆市 | 0011 0010 |
21 | 辽宁省 | 0001 0101 | 51 | 四川省 | 0011 0011 |
22 | 吉林省 | 0001 0110 | 52 | 贵州省 | 0011 0100 |
23 | 黑龙江省 | 0001 0111 | 53 | 云南省 | 0011 0101 |
31 | 上海市 | 0001 1111 | 54 | 西藏自治区 | 0011 0110 |
32 | 江苏省 | 0010 0000 | 61 | 陕西省 | 0011 1101 |
33 | 浙江省 | 0010 0001 | 62 | 甘肃省 | 0011 1110 |
34 | 安徽省 | 0010 0010 | 63 | 青海省 | 0011 1111 |
35 | 福建省 | 0010 0011 | 64 | 宁夏回族自治区 | 0100 0000 |
36 | 江西省 | 0010 0100 | 65 | 新疆维吾尔自治区 | 0100 0001 |
37 | 山东省 | 0010 0101 | 71 | 台湾省 | 0100 1000 |
41 | 河南省 | 0010 1001 | 81 | 香港特别行政区 | 0101 0001 |
42 | 湖北省 | 0010 1010 | 82 | 澳门特别行政区 | 0101 0010 |
其中,行政区划识别码为社保卡发行地行政区划代码前两位,将行政区划识别码转化为8bit二进制初始行政显示符。
本申请创新性地提出用信息压缩编码算法解决居民社保卡中行政区划编码和社保卡号,共15个字符,因为包含F之后的字母及长度不能适配目前广泛使用的WG66安防门禁控制器的传输协议问题。
本申请在编码过程中,将6bit二进制流进行高位低位分离,最大程度保留了原有信息的目视可读性。
附图说明
图1为本申请实施例提供的一种用于安防门禁上的信息压缩编码方法的流程图;
图2为本申请实施例提供的一种用于安防门禁上的信息解码方法的流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面首先结合附图对本申请实施例进行介绍。
本申请提供的方法包括:
编码阶段以及解码阶段。
其中,编码阶段包括:
步骤S1,读取居民社保卡公开信息字符,将其中省级行政区划识别码按照行政区代码表作为整体转化为8bit二进制的初始行政显示符。取居民社保卡包括6个字符的行政区划代码以及每个直辖市、省、自治区内的每张卡唯一的9个字符的社保卡号。
具体的,行政区代码表如下所示:
表1:行政区代码表
编码 | 省级区划 | 初始行政显示符 | 序号 | 省级区划 | 初始行政显示符 |
11 | 北京市 | 0000 1011 | 43 | 湖南省 | 0010 1011 |
12 | 天津市 | 0000 1100 | 44 | 广东省 | 0010 1100 |
13 | 河北省 | 0000 1101 | 45 | 广西壮族自治区 | 0010 1101 |
14 | 山西省 | 0000 1110 | 46 | 海南省 | 0010 1110 |
15 | 内蒙古自治区 | 0000 1111 | 50 | 重庆市 | 0011 0010 |
21 | 辽宁省 | 0001 0101 | 51 | 四川省 | 0011 0011 |
22 | 吉林省 | 0001 0110 | 52 | 贵州省 | 0011 0100 |
23 | 黑龙江省 | 0001 0111 | 53 | 云南省 | 0011 0101 |
31 | 上海市 | 0001 1111 | 54 | 西藏自治区 | 0011 0110 |
32 | 江苏省 | 0010 0000 | 61 | 陕西省 | 0011 1101 |
33 | 浙江省 | 0010 0001 | 62 | 甘肃省 | 0011 1110 |
34 | 安徽省 | 0010 0010 | 63 | 青海省 | 0011 1111 |
35 | 福建省 | 0010 0011 | 64 | 宁夏回族自治区 | 0100 0000 |
36 | 江西省 | 0010 0100 | 65 | 新疆维吾尔自治区 | 0100 0001 |
37 | 山东省 | 0010 0101 | 71 | 台湾省 | 0100 1000 |
41 | 河南省 | 0010 1001 | 81 | 香港特别行政区 | 0101 0001 |
42 | 湖北省 | 0010 1010 | 82 | 澳门特别行政区 | 0101 0010 |
其中,行政区划识别码为社保卡发行地行政区划代码前两位对应为表1中的编码,将行政区划识别码转化为8bit二进制初始行政显示符。
步骤S2,将社保卡号中的每一位字符按照预先确定的社保卡号编码表,转化为6bit二进制初始社保卡号显示符。其中字符从0至z依次对应数字0至61。
具体的,社保卡号编码表如下所示:
表2:社保卡号编码表
序号 | 字符 | 初始社保卡号显示符 | 序号 | 字符 | 初始社保卡号显示符 |
0 | 0 | 00 0000 | 31 | V | 01 1111 |
1 | 1 | 00 0001 | 32 | W | 10 0000 |
2 | 2 | 00 0010 | 33 | X | 10 0001 |
3 | 3 | 00 0011 | 34 | Y | 10 0010 |
4 | 4 | 00 0100 | 35 | Z | 10 0011 |
5 | 5 | 00 0101 | 36 | a | 10 0100 |
6 | 6 | 00 0110 | 37 | b | 10 0101 |
7 | 7 | 00 0111 | 38 | c | 10 0110 |
8 | 8 | 00 1000 | 39 | d | 10 0111 |
9 | 9 | 00 1001 | 40 | e | 10 1000 |
10 | A | 00 1010 | 41 | f | 10 1001 |
11 | B | 00 1011 | 42 | g | 10 1010 |
12 | C | 00 1100 | 43 | h | 10 1011 |
13 | D | 00 1101 | 44 | i | 10 1100 |
14 | E | 00 1110 | 45 | j | 10 1101 |
15 | F | 00 1111 | 46 | k | 10 1110 |
16 | G | 01 0000 | 47 | l | 10 1111 |
17 | H | 01 0001 | 48 | m | 11 0000 |
18 | I | 01 0010 | 49 | n | 11 0001 |
19 | J | 01 0011 | 50 | o | 11 0010 |
20 | K | 01 0100 | 51 | p | 11 0011 |
21 | L | 01 0101 | 52 | q | 11 0100 |
22 | M | 01 0110 | 53 | r | 11 0101 |
23 | N | 01 0111 | 54 | s | 11 0110 |
24 | O | 01 1000 | 55 | t | 11 0111 |
25 | P | 01 1001 | 56 | u | 11 1000 |
26 | Q | 01 1010 | 57 | v | 11 1001 |
27 | R | 01 1011 | 58 | w | 11 1010 |
28 | S | 01 1100 | 59 | x | 11 1011 |
29 | T | 01 1101 | 60 | y | 11 1100 |
30 | U | 01 1110 | 61 | z | 11 1101 |
其中,字符从0至z依次对应数字0至61,将每一字符对应到目标数字上,再将目标数字转化为6bit二进制表现形式。
步骤S3,将每一初始社保卡号显示符划分为高位社保卡号显示符,以及低位社保卡号显示符,并对所有高位社保卡号显示符以及低位社保卡号显示符进行拼接。
具体的,将初始社保卡号显示符中的前两位作为高位社保卡号显示符,将初始社保卡号显示符中的后四位作为低位社保卡号显示符。
所有高位社保卡号显示符按照社保卡号中原字符的顺序进行拼接,所有低位社保卡号显示符按照社保卡号中原字符的顺序进行拼接。
步骤S4,按照高位社保卡号显示符、初始行政显示符以及低位社保卡号显示符的顺序将三者进行拼接,并进行补位处理,以及十六进制转换,得到编码结果。
具体的,按照高位社保卡号显示符、初始行政显示符以及低位社保卡号显示符的顺序将三者进行拼接。
在高位社保卡号显示符之前两位用0进行补位,得到初始编码结果。
将初始编码结果按照每4位为一字符进行十六进制转换,得到编码结果。
需要说明的是,本申请实施例中,采用高位和地位相分离的方法,可以最大程度保留0-9、A-F的字符原样输出,提高了社保卡号的可读性。
举个例子,假如居民社保卡公开信息中的省级行政区划识别码字符为65,根据步骤S1,转化成8bit二进制的初始行政显示符为0100 0001。
社保卡号为D1234567X,转化成6bit二进制初始社保卡号显示符为00 1101 000001 00 0010 00 0011 00 0100 00 0101 00 0110 00 0111 10 0001.
如果不采用高位和地位相分离的办法,则对应得到补位后的64位二进制bit流:000100 0001 001101 000001 000010 000011 000100 000101 000110 000111 100001。再进行十六进制转化,得到:104D 0420 C414 61E1。
而如果采用本申请实施例提供的方法,补位后得到64位二进制bit流:00 00 0000 00 00 00 00 00 10 0100 0001 1101 0001 0010 0011 0100 0101 0110 0111 0001。十六进制转换结果为0000 241D 1234 5671。最大程度保留了原社保卡号中的“D1234567”。较之一般情况下,不采用高位与低位相分离的方法,原社保卡号中的信息的目视可读性加强。
解码过程包括:
步骤S5,读取编码结果,进行二进制转码得到初始解码符。
步骤S6,对初始解码符进行划分,得到第一中间字符、第二中间字符以及第三中间字符。
具体的,取初始解码符中的第3位至第20位得到第一中间字符。取第21位至第28位得到第二中间字符,取第29位至第64位得到第三中间字符。
步骤S7,对第一中间字符以及第三中间字符进行拆解以及重组处理,对重组后的字符进行解码,得到居民社保卡字符。
具体的,将第一中间字符以每两位为一单元进行顺序排序,第三中间字符以每四位为一单元进行顺序排序。
将第一中间字符与第三中间字符中排序序号相同的单元进行拼接,按照社保卡号编码表进行解码,得到对应的居民社保卡号字符。
具体的,第二中间字符即为社保卡号编码表中的初始社保卡号显示符,对应转化为字符,并将所有字符按顺序排列,即可得到居民社保卡号字符。
步骤S8,对第二中间字符按照行政区代码表进行解码,得到对应的行政区划识别码。
本申请还提供了一种用于安防门禁上的信息压缩编码解码装置,装置包括:
编码阶段模块以及解码模块。
其中,编码模块用于:
读取居民社保卡字符,将其中行政区划识别码按照行政区代码表作为整体转化为8bit二进制的初始行政显示符 。取居民社保卡包括6个字符的行政区划代码以及每个直辖市、省、自治区内的每张卡唯一的9个字符的社保卡号。
以及将社保卡号中的每一位字符按照预先确定的社保卡号编码表,转化为6bit二进制初始社保卡号显示符。其中字符从0至z依次对应数字0至61。
以及将每一初始社保卡号显示符划分为高位社保卡号显示符,以及低位社保卡号显示符,并对所有高位社保卡号显示符以及低位社保卡号显示符进行拼接。
以及按照高位社保卡号显示符、初始行政显示符以及低位社保卡号显示符的顺序将三者进行拼接,并进行补位处理,以及十六进制转换,得到编码结果。
解码模块用于:
读取编码结果,进行二进制转码得到初始解码符。
以及对初始解码符进行划分,得到第一中间字符、第二中间字符以及第三中间字符。
以及对第一中间字符以及第三中间字符进行拆解以及重组处理,对重组后的字符进行解码,得到居民社保卡字符
以及对第二中间字符按照行政区代码表进行解码,得到对应的行政区划识别码。
可选的,编码模块具体用于:
将初始社保卡号显示符中的前两位作为高位社保卡号显示符,将初始社保卡号显示符中的后四位作为低位社保卡号显示符。
所有高位社保卡号显示符按照社保卡号中原字符的顺序进行拼接,所有低位社保卡号显示符按照社保卡号中原字符的顺序进行拼接。
可选的,解码模块具体用于:
按照高位社保卡号显示符、初始行政显示符以及低位社保卡号显示符的顺序将三者进行拼接。
在高位社保卡号显示符之前两位用0进行补位,得到初始编码结果。
将初始编码结果按照每4位为一字节进行十六进制转换,得到编码结果。
可选的,解码模块具体用于:
取初始解码符中的第3位至第20位得到第一中间字符。取第21位至第28位得到第二中间字符,取第29位至第64位得到第三中间字符。
可选的,解码模块具体用于:
将第一中间字符以每两位为一单元进行顺序排序,第三中间字符以每四位为一单元进行顺序排序。
将第一中间字符与第三中间字符中排序序号相同的单元进行拼接,按照社保卡号编码表进行解码,得到对应的居民社保卡号字符。
可选的,社保卡号编码表如下所示:
序号 | 字符 | 初始社保卡号显示符 | 序号 | 字符 | 初始社保卡号显示符 |
0 | 0 | 00 0000 | 31 | V | 01 1111 |
1 | 1 | 00 0001 | 32 | W | 10 0000 |
2 | 2 | 00 0010 | 33 | X | 10 0001 |
3 | 3 | 00 0011 | 34 | Y | 10 0010 |
4 | 4 | 00 0100 | 35 | Z | 10 0011 |
5 | 5 | 00 0101 | 36 | a | 10 0100 |
6 | 6 | 00 0110 | 37 | b | 10 0101 |
7 | 7 | 00 0111 | 38 | c | 10 0110 |
8 | 8 | 00 1000 | 39 | d | 10 0111 |
9 | 9 | 00 1001 | 40 | e | 10 1000 |
10 | A | 00 1010 | 41 | f | 10 1001 |
11 | B | 00 1011 | 42 | g | 10 1010 |
12 | C | 00 1100 | 43 | h | 10 1011 |
13 | D | 00 1101 | 44 | i | 10 1100 |
14 | E | 00 1110 | 45 | j | 10 1101 |
15 | F | 00 1111 | 46 | k | 10 1110 |
16 | G | 01 0000 | 47 | l | 10 1111 |
17 | H | 01 0001 | 48 | m | 11 0000 |
18 | I | 01 0010 | 49 | n | 11 0001 |
19 | J | 01 0011 | 50 | o | 11 0010 |
20 | K | 01 0100 | 51 | p | 11 0011 |
21 | L | 01 0101 | 52 | q | 11 0100 |
22 | M | 01 0110 | 53 | r | 11 0101 |
23 | N | 01 0111 | 54 | s | 11 0110 |
24 | O | 01 1000 | 55 | t | 11 0111 |
25 | P | 01 1001 | 56 | u | 11 1000 |
26 | Q | 01 1010 | 57 | v | 11 1001 |
27 | R | 01 1011 | 58 | w | 11 1010 |
28 | S | 01 1100 | 59 | x | 11 1011 |
29 | T | 01 1101 | 60 | y | 11 1100 |
30 | U | 01 1110 | 61 | z | 11 1101 |
其中,字符从0至z依次对应数字0至61,将每一字符对应到目标数字上,再将目标数字转化为6bit二进制表现形式。
可选的,行政区代码表如下所示:
编码 | 省级区划 | 初始行政显示符 | 序号 | 省级区划 | 初始行政显示符 |
11 | 北京市 | 0000 1011 | 43 | 湖南省 | 0010 1011 |
12 | 天津市 | 0000 1100 | 44 | 广东省 | 0010 1100 |
13 | 河北省 | 0000 1101 | 45 | 广西壮族自治区 | 0010 1101 |
14 | 山西省 | 0000 1110 | 46 | 海南省 | 0010 1110 |
15 | 内蒙古自治区 | 0000 1111 | 50 | 重庆市 | 0011 0010 |
21 | 辽宁省 | 0001 0101 | 51 | 四川省 | 0011 0011 |
22 | 吉林省 | 0001 0110 | 52 | 贵州省 | 0011 0100 |
23 | 黑龙江省 | 0001 0111 | 53 | 云南省 | 0011 0101 |
31 | 上海市 | 0001 1111 | 54 | 西藏自治区 | 0011 0110 |
32 | 江苏省 | 0010 0000 | 61 | 陕西省 | 0011 1101 |
33 | 浙江省 | 0010 0001 | 62 | 甘肃省 | 0011 1110 |
34 | 安徽省 | 0010 0010 | 63 | 青海省 | 0011 1111 |
35 | 福建省 | 0010 0011 | 64 | 宁夏回族自治区 | 0100 0000 |
36 | 江西省 | 0010 0100 | 65 | 新疆维吾尔自治区 | 0100 0001 |
37 | 山东省 | 0010 0101 | 71 | 台湾省 | 0100 1000 |
41 | 河南省 | 0010 1001 | 81 | 香港特别行政区 | 0101 0001 |
42 | 湖北省 | 0010 1010 | 82 | 澳门特别行政区 | 0101 0010 |
其中,行政区划识别码为社保卡发行地行政区划代码前两位,将行政区划识别码转化为8bit二进制初始行政显示符。
需要说明的是,本申请中解码以及编码过程均为独立过程,实施者根据需要可以仅实施其中一个过程。
下面结合具体例子,阐述本申请实施例。
安徽某居民持有的社保卡的省级行政区划识别码为34,社保卡号为JB468994X。根据步骤S1,34压缩为34(安徽省省级行政区划代码),二进制bit流为0010 0010。
根据步骤S2,JB468994X编码为010011 001011 000100 000110 001000 001001001001 000100 100001。
根据步骤S3,以J对应的010011为例,其中,前两位01为高位,后四位0011为低位。
根据步骤S4,高位社保卡号显示符拼接结果为01 00 00 00 00 00 00 00 10 ,低位社保卡号显示符凭借结果为0011 1011 0100 0110 1000 1001 1001 0100 0001。
在高位社保卡号显示符之前两位用0进行补位,并按照高位社保卡号显示符、初始行政显示符以及低位社保卡号显示符的顺序将三者进行拼接,得到0001 0000 0000 00000010 0010 0010 0011 1011 0100 0110 1000 1001 1001 0100 0001,进行十六进制转换,得到编码结果为10 00 22 23 B4 68 99 41。
在解码过程中,根据步骤S5,首先得到十六进制社保卡信息为:10 00 22 23 B468 99 41。然后对以上信息进行二进制转码,得到本申请实施例中的64位初试解码符:
0001000000000000001000100010001110110100011010001001100101000001。
根据步骤S6以及S7,得到居民社保卡字符对应的二进制流为010011 001011000100 000110 001000 001001 001001 000100 100001,居民社保卡字符为JB468994X。
根据步骤S8,行政区划编码前两位为34。
本申请创新性地提出用信息压缩编码算法解决居民社保卡中行政区划编码和社保卡号,共15个字符,因为包含F之后的字母及长度不能适配目前广泛使用的WG66安防门禁控制器的传输协议问题。
本申请在编码过程中,将6bit二进制流进行高位低位分离,最大程度保留了原有信息的目视可读性。
本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于服务构建装置和服务加载装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。
Claims (6)
1.一种用于安防门禁上的信息压缩编码解码方法,其特征在于,所述方法包括:
编码阶段以及解码阶段;
其中,编码阶段包括:
读取居民社保卡公开信息字符,将其中行政区代码表作为整体转化为8bit二进制的初始行政显示符;所述取居民社保卡包括6个字符的行政区划代码以及每个直辖市、省、自治区内的唯一的9个字符的社保卡号;
将社保卡号中的每一位字符按照预先确定的社保卡号编码表,转化为6bit二进制初始社保卡号显示符;其中字符从0至z依次对应数字0至61;
将每一初始社保卡号显示符划分为高位社保卡号显示符,以及低位社保卡号显示符,并对所有高位社保卡号显示符以及低位社保卡号显示符进行拼接;
按照高位社保卡号显示符、初始行政显示符以及低位社保卡号显示符的顺序将三者进行拼接,并进行补位处理,以及十六进制转换,得到编码结果;
解码过程包括:
读取编码结果,进行二进制转码得到初始解码符;
对初始解码符进行划分,得到第一中间字符、第二中间字符以及第三中间字符;
对第一中间字符以及第三中间字符进行拆解以及重组处理,对重组后的字符进行解码,得到居民社保卡号字符;
对第二中间字符按照行政区代码表进行解码,得到对应的行政区划识别码;
其中,将初始社保卡号显示符划分为高位社保卡号显示符,以及低位社保卡号显示符,并对所有高位社保卡号显示符以及低位社保卡号显示符进行拼接,包括:
将初始社保卡号显示符中的前两位作为高位社保卡号显示符,将初始社保卡号显示符中的后四位作为低位社保卡号显示符;
所有高位社保卡号显示符按照社保卡号中原字符的顺序进行拼接,所有低位社保卡号显示符按照社保卡号中原字符的顺序进行拼接;
按照高位社保卡号显示符、初始行政显示符以及低位社保卡号显示符的顺序将三者进行拼接,并进行补位处理,以及十六进制转换,得到编码结果,包括:
按照高位社保卡号显示符、初始行政显示符以及低位社保卡号显示符的顺序将三者进行拼接;
在高位社保卡号显示符之前两位用0进行补位,得到初始编码结果;
将初始编码结果按照每4位为一字符进行十六进制转换,得到编码结果。
2.根据权利要求1所述的方法,其特征在于,对初始解码符进行划分,得到第一中间字符、第二中间字符以及第三中间字符,包括:
取初始解码符中的第3位至第20位得到第一中间字符;取第21位至第28位得到第二中间字符,取第29位至第64位得到第三中间字符。
3.根据权利要求1所述的方法,其特征在于,对第一中间字符以及第三中间字符进行拆解以及重组处理,对重组后的字符进行解码,得到居民社保卡号字符,包括:
将第一中间字符以每两位为一单元进行顺序排序,第三中间字符以每四位为一单元进行顺序排序;
将第一中间字符与第三中间字符中排序序号相同的单元进行拼接,按照社保卡号编码表进行解码,得到对应的居民社保卡号字符。
4.根据权利要求1所述的方法,其特征在于,社保卡号编码表如下所示:
其中,字符从0至z依次对应数字0至61,将每一字符对应到目标数字上,再将目标数字转化为6bit二进制表现形式。
5.根据权利要求1所述的方法,其特征在于,行政区代码表如下所示:
其中,行政区划识别码为社保卡发行地行政区划代码前两位,将行政区划识别码转化为8bit二进制初始行政显示符。
6.一种用于安防门禁上的信息压缩编码解码装置,其特征在于,所述装置包括:
编码阶段模块以及解码模块;
其中,编码模块用于:
读取居民社保卡公开信息字符,将其中省级行政区划识别码按照行政区代码表作为整体转化为8bit二进制的初始行政显示符;所述取居民社保卡包括6个字符的行政区划代码以及每个直辖市、省、自治区内的每张卡唯一的9个字符的社保卡号;
以及将社保卡号中的每一位字符按照预先确定的社保卡号编码表,转化为6bit二进制初始社保卡号显示符;其中字符从0至z依次对应数字0至61;
以及将每一初始社保卡号显示符划分为高位社保卡号显示符,以及低位社保卡号显示符,并对所有高位社保卡号显示符以及低位社保卡号显示符进行拼接;
以及按照高位社保卡号显示符、初始行政显示符以及低位社保卡号显示符的顺序将三者进行拼接,并进行补位处理,以及十六进制转换,得到编码结果;
解码模块用于:
读取编码结果,进行二进制转码得到初始解码符;
以及对初始解码符进行划分,得到第一中间字符、第二中间字符以及第三中间字符;
以及对第一中间字符以及第三中间字符进行拆解以及重组处理,对重组后的字符进行解码,得到居民社保卡字符
以及对第二中间字符按照行政区代码表进行解码,得到对应的行政区划识别码;
其中,编码模块具体用于:
将初始社保卡号显示符中的前两位作为高位社保卡号显示符,将初始社保卡号显示符中的后四位作为低位社保卡号显示符;
所有高位社保卡号显示符按照社保卡号中原字符的顺序进行拼接,所有低位社保卡号显示符按照社保卡号中原字符的顺序进行拼接;
解码模块具体用于:
按照高位社保卡号显示符、初始行政显示符以及低位社保卡号显示符的顺序将三者进行拼接;
在高位社保卡号显示符之前两位用0进行补位,得到初始编码结果;
将初始编码结果按照每4位为一字符进行十六进制转换,得到编码结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211076188.9A CN115169289B (zh) | 2022-09-05 | 2022-09-05 | 一种用于安防门禁上的信息压缩编码解码方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211076188.9A CN115169289B (zh) | 2022-09-05 | 2022-09-05 | 一种用于安防门禁上的信息压缩编码解码方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115169289A CN115169289A (zh) | 2022-10-11 |
CN115169289B true CN115169289B (zh) | 2023-09-26 |
Family
ID=83481388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211076188.9A Active CN115169289B (zh) | 2022-09-05 | 2022-09-05 | 一种用于安防门禁上的信息压缩编码解码方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115169289B (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106919882A (zh) * | 2015-12-28 | 2017-07-04 | 航天信息股份有限公司 | 一种二维码内容转为纯数字符号编码的方法 |
CN109544769A (zh) * | 2019-01-17 | 2019-03-29 | 福州符号信息科技有限公司 | 一种基于韦根协议的门禁系统及控制方法 |
CN112529231B (zh) * | 2021-02-08 | 2021-08-03 | 北京翔东智能科技有限公司 | 一种社保卡信息采集系统及其采集方法 |
-
2022
- 2022-09-05 CN CN202211076188.9A patent/CN115169289B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115169289A (zh) | 2022-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6154542A (en) | Method and apparatus for simultaneously encrypting and compressing data | |
WO2022120912A1 (zh) | 编码方法、解码方法、装置及计算机可读存储介质 | |
WO2016029801A1 (zh) | 编码、解码方法以及编码装置和解码装置 | |
US20100085223A1 (en) | Variable length integer encoding system and method | |
US11178212B2 (en) | Compressing and transmitting structured information | |
CN104579360B (zh) | 一种数据处理的方法和设备 | |
WO2016029664A1 (zh) | 一种二维过滤器的生成方法、查询方法及装置 | |
CN104123364A (zh) | 一种移动终端发送和接收数据的方法及装置 | |
CN108052805B (zh) | 一种数据加解密方法和装置 | |
CN112035706A (zh) | 编码、解码方法、计算机设备及可读存储介质 | |
CN111708574B (zh) | 指令流压缩、解压缩方法及装置 | |
CN115169289B (zh) | 一种用于安防门禁上的信息压缩编码解码方法及装置 | |
CN106919882A (zh) | 一种二维码内容转为纯数字符号编码的方法 | |
WO2024066271A1 (zh) | 数据库水印的嵌入方法、溯源方法、装置和电子设备 | |
CN108809516A (zh) | 一种格式化数据脱敏的高安全性编码解码方法 | |
US10873836B2 (en) | Efficient short message compression | |
CN112016270B (zh) | 汉信码的物流信息编码方法、装置及设备 | |
CN116170599B (zh) | 一种同步实时图像压缩方法、系统、介质及终端 | |
CN116010984A (zh) | 一种关系型数据库数据多重加密存储方法、装置及设备 | |
CN101201829B (zh) | 一种汉字库系统及其字码显示方法 | |
CN110287147B (zh) | 一种字符串排序方法及装置 | |
US20170214926A1 (en) | System and method for transcoding data | |
CN107463542B (zh) | 一种使用ascii打印字符表示二进制数的方法 | |
US20080301416A1 (en) | System and program product of doing pack unicode z series instructions | |
CN114928363A (zh) | 数据处理方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |