public static bool IsValidCPF(this string CPF) { CPF = CPF.ClearStrings(); if (CPF.Length < 11) return false; for (int i = 0; i < CPF.Length; i++) Convert.ToInt32(CPF[i].ToString()); if (CPF == "00000000000" || CPF == "11111111111" || CPF == "22222222222" || CPF == "33333333333" || CPF == "44444444444" || CPF == "55555555555" || CPF == "66666666666" || CPF == "77777777777" || CPF == "88888888888" || CPF == "99999999999") return false; int[] a = new int[11]; int b = 0; int c = 10; int x = 0; for (int i = 0; i < 9; i++) { a[i] = Convert.ToInt32(CPF[i].ToString()); b += (a[i] * c); c--; } x = b % 11; if (x < 2) a[9] = 0; else a[9] = 11 - x; b = 0; c = 11; for (int i = 0; i < 10; i++) { b += (a[i] * c); c--; } x = b % 11; if (x < 2) a[10] = 0; else a[10] = 11 - x; if ((Convert.ToInt32(CPF[9].ToString()) != a[9]) || (Convert.ToInt32(CPF[10].ToString()) != a[10])) return false; return true; }
public static bool IsValidCNPJ(this string CNPJ) { CNPJ = CNPJ.ClearStrings(); if (CNPJ.Length < 14) return false; for (int i = 0; i < 14; i++) Convert.ToInt32(CNPJ[i].ToString()); int[] a = new int[14]; int b = 0; int[] c = { 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 }; int x = 0; for (int i = 0; i < 12; i++) { a[i] = Convert.ToInt32(CNPJ[i].ToString()); b += a[i] * c[i + 1]; } x = b % 11; if (x < 2) a[12] = 0; else a[12] = 11 - x; b = 0; for (int j = 0; j < 13; j++) b += (a[j] * c[j]); x = b % 11; if (x < 2) a[13] = 0; else a[13] = 11 - x; if ((Convert.ToInt32(CNPJ[12].ToString()) != a[12]) || (Convert.ToInt32(CNPJ[13].ToString()) != a[13])) return false; return true; }