# Cinc-Java **Repository Path**: LanceChen/cinc-java ## Basic Information - **Project Name**: Cinc-Java - **Description**: 一个对身份证证件号码进行编码和解码的库 - **Primary Language**: Unknown - **License**: LGPL-2.1 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-07-06 - **Last Updated**: 2024-12-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CINC:身份证件号码转换 采用9位字母-数字的混合字符串将中国身份证件号码压缩表示,以及将外国护照号码的哈希表示。 其中不使用O、I、S、Z减少手写和识读混淆。 对证件号码的转换表示 **分为两种独立的类型** : 1. 对于中国证件:将居民身份证号、港澳台居民居住证号、新版外国人永久居留身份证(五星卡)号、旧版外国人永久居留身份证号、港澳居民往来内地通行证号、台湾居民往来内地通行证号进行压缩编码为9位字母-数字混合字符串,用于显示表示。压缩编码后的字符串是 **可逆的** ,可识别证件类型并解码恢复。 2. 对于外国护照:将外国护照的签发国和护照号合并编码为9位字母-数字混合字符串,用于显示表示。哈希编码后的字符串是**不可逆的**,外国护照签发国可解码恢复,护照号码不可恢复。有一定冗余空间用于应对极端情况下的哈希冲突。 **注意不要将上述两种编码混合在一起使用。** ## 用法 ### 中国证件 #### 编码 ``` me.chenqiang.cinc.CincCoder.encode(String) ``` 该方法会根据编号格式识别出证件类型,并压缩为9位字母-数字串。 #### 解码 ``` me.chenqiang.cinc.CincCoder.decode(String) ``` 该方法会返回相应的证件类型(me.chenqiang.cinc.IDType)和编号。 ### 外国护照 #### 编码 ``` me.chenqiang.cinc.CincCoder.encodePassport(String) ``` #### 识别国籍 ``` me.chenqiang.cinc.CincCoder.extractPassportIssuingCountry(String) ``` 返回ISO 3166-1标准的两字母表示(Alpha-2)表示的国家代码,后续可通过国家代码类获得国家中英文名称和其他代码。 ``` me.chenqiang.cinc.codes.ISO3166Utils.getCountryByAlpha2(String) ``` #### 国家代码工具类 可以根据ISO 3166-1标准的三位数字代码、两字母代码、三字母代码查找国家信息。 ``` me.chenqiang.cinc.codes.ISO3166Utils ```