新身份证校验码公式,只要举例子不要符号
发布网友
发布时间:2022-04-24 00:14
我来回答
共1个回答
热心网友
时间:2023-10-15 00:46
/// <summary>
/// 计算新身份证的校验码
/// 通过计算 新身份证号码的前17位,得出新身份证的校验码。
/// (应该和真实身份证的尾校验码相同,不同,则为输入失误或号码系伪造)
/// </summary>
/// <param name="input">新身份证号码的前17位(不包括尾校验码)</param>
/// <returns>新身份证的校验码</returns>
string PINVer(string input)
{
int[] ins = new int[input.Length];
int i = 0;
foreach (char ch in input)
ins[i++] = int.Parse(ch.ToString());
int total = 0;
for (i = 0; i < ins.Length; i++)
total += ins[ins.Length - i - 1] * ((int)Math.Pow(2, i + 1) % 11);
total = (12 - total % 11) % 11;
return total == 10 ? "X" : total.ToString();
参考资料:http://hi.baidu.com/zts9989/blog/item/50c95b1317dfd620dc54016c.html