天天看点

对数字进行自定义62进制 数字加密 的方法

    若想对纯数字进行加密,即想让别人无法猜到你的数,又想缩小长度,还要保证不出现特殊字符,  那么你可以将十进制数转化成 自定义的 62进制。 

         0-9,a-z,A-Z合起来正好为62个字符, 并且你可以将这些字符随机拼装,形成一个映射表: 

         比如    61 我们用0来表示, 60用A来表示,0用n来表示。 只要不知道你的映射表, 其他人不可能一眼就猜出你的真实数据。

[php]  view plain copy

对数字进行自定义62进制 数字加密 的方法
对数字进行自定义62进制 数字加密 的方法
  1.   public static  function _10to62($n){  
  2.       $table ="6Qw7fWXgTjkcordIKLvBstRSD3n904U5e8ZMOPluhJmiNxVyzY12AFGHabpCEq";  //映射表  
  3.       //   $table ="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";  
  4.       $res = "";  
  5.       while(($a=floor($n/62)) > 0)  
  6.       {  
  7.           $res = $table[$n%62].$res;  
  8.           $n = $a;  
  9.       }  
  10.       $res = $table[$n%62].$res;  
  11.       return $res;  
  12.   }  
  13.   public static  function _62to10($m){  
  14.       $table ="6Qw7fWXgTjkcordIKLvBstRSD3n904U5e8ZMOPluhJmiNxVyzY12AFGHabpCEq";  //映射表  
  15.       // $table ="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";  
  16.       $res = 0;  
  17.       for($n=strlen($m),$i=$n-1;$i>=0;$i--){  
  18.           $res += strpos($table,$m[$n-$i-1])*pow(62,$i);  
  19.       }  
  20.       return $res;