Advertisement
Guest User

priv_key to wif (bitcoin) 2

a guest
Nov 13th, 2013
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.08 KB | None | 0 0
  1. <form method="post">
  2. <input type="text" name="key" value="" />
  3. <input type="submit" name="submit" value="Go" />
  4. </form>
  5. <?php
  6. define("ADDRESSVERSION","80"); //this is a hex byte
  7. if($_POST)
  8. {  
  9.     echo hash160ToAddress(trim(strtoupper($_POST['key'])));
  10. }
  11.  
  12. function hash160ToAddress($hash160,$addressversion=null)
  13. {
  14.         if($addressversion === null)
  15.         {
  16.             $addressversion = ADDRESSVERSION;
  17.         }
  18.         $hash160=$addressversion.$hash160;
  19.         $check=pack("H*" , $hash160);
  20.         $check=hash("sha256",hash("sha256",$check,true));
  21.         $check=substr($check,0,8);
  22.         $hash160=strtoupper($hash160.$check);
  23.         return encodeBase58($hash160);
  24. }
  25.  
  26. function decodeHex($hex)
  27. {
  28.         $hex=strtoupper($hex);
  29.         $chars="0123456789ABCDEF";
  30.         $return="0";
  31.         for($i=0;$i<strlen($hex);$i++)
  32.         {
  33.                 $current=(string)strpos($chars,$hex[$i]);
  34.                 $return=(string)bcmul($return,"16",0);
  35.                 $return=(string)bcadd($return,$current,0);
  36.         }
  37.         return $return;
  38. }
  39.  
  40. function encodeHex($dec)
  41. {
  42.         $chars="0123456789ABCDEF";
  43.         $return="";
  44.         while (bccomp($dec,0)==1)
  45.         {
  46.                 $dv=(string)bcdiv($dec,"16",0);
  47.                 $rem=(integer)bcmod($dec,"16");
  48.                 $dec=$dv;
  49.                 $return=$return.$chars[$rem];
  50.         }
  51.         return strrev($return);
  52. }
  53.  
  54. function decodeBase58($base58)
  55. {
  56.         $origbase58=$base58;
  57.        
  58.         $chars="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
  59.         $return="0";
  60.         for($i=0;$i<strlen($base58);$i++)
  61.         {
  62.                 $current=(string)strpos($chars,$base58[$i]);
  63.                 $return=(string)bcmul($return,"58",0);
  64.                 $return=(string)bcadd($return,$current,0);
  65.         }
  66.        
  67.         $return=encodeHex($return);
  68.        
  69.         //leading zeros
  70.         for($i=0;$i<strlen($origbase58)&&$origbase58[$i]=="1";$i++)
  71.         {
  72.                 $return="00".$return;
  73.         }
  74.        
  75.         if(strlen($return)%2!=0)
  76.         {
  77.                 $return="0".$return;
  78.         }
  79.        
  80.         return $return;
  81. }
  82.  
  83. function encodeBase58($hex)
  84. {
  85.         if(strlen($hex)%2!=0)
  86.         {
  87.                 die("encodeBase58: uneven number of hex characters");
  88.         }
  89.         $orighex=$hex;
  90.        
  91.         $chars="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
  92.         $hex=decodeHex($hex);
  93.         $return="";
  94.         while (bccomp($hex,0)==1)
  95.         {
  96.                 $dv=(string)bcdiv($hex,"58",0);
  97.                 $rem=(integer)bcmod($hex,"58");
  98.                 $hex=$dv;
  99.                 $return=$return.$chars[$rem];
  100.         }
  101.         $return=strrev($return);
  102.        
  103.         //leading zeros
  104.         for($i=0;$i<strlen($orighex)&&substr($orighex,$i,2)=="00";$i+=2)
  105.         {
  106.                 $return="1".$return;
  107.         }
  108.        
  109.         return $return;
  110. }
  111.  
  112.  
  113.  
  114. function addressToHash160($addr)
  115. {
  116.         $addr=decodeBase58($addr);
  117.         $addr=substr($addr,2,strlen($addr)-10);
  118.         return $addr;
  119. }
  120.  
  121. function checkAddress($addr,$addressversion=ADDRESSVERSION)
  122. {
  123.         $addr=decodeBase58($addr);
  124.         if(strlen($addr)!=50)
  125.         {
  126.                 return false;
  127.         }
  128.         $version=substr($addr,0,2);
  129.         if(hexdec($version)>hexdec($addressversion))
  130.         {
  131.                 return false;
  132.         }
  133.         $check=substr($addr,0,strlen($addr)-8);
  134.         $check=pack("H*" , $check);
  135.         $check=strtoupper(hash("sha256",hash("sha256",$check,true)));
  136.         $check=substr($check,0,8);
  137.         return $check==substr($addr,strlen($addr)-8);
  138. }
  139.  
  140. function hash160($data)
  141. {
  142.         $data=pack("H*" , $data);
  143.         return strtoupper(hash("ripemd160",hash("sha256",$data,true)));
  144. }
  145.  
  146. function pubKeyToAddress($pubkey)
  147. {
  148.         return hash160ToAddress(hash160($pubkey));
  149. }
  150.  
  151. function remove0x($string)
  152. {
  153.         if(substr($string,0,2)=="0x"||substr($string,0,2)=="0X")
  154.         {
  155.                 $string=substr($string,2);
  156.         }
  157.         return $string;
  158. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement