-
Notifications
You must be signed in to change notification settings - Fork 1
/
hash.php
53 lines (49 loc) · 1.83 KB
/
hash.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<div id="result"><?php
switch($_POST['tipe']){
case 'base64encode': echo base64_encode($_POST['from']);break;
case 'base64decode': echo base64_decode($_POST['from']);break;
case 'urlencode': echo urlencode($_POST['from']);break;
case 'urldecode': echo urldecode($_POST['from']);break;
case 'base58encode': echo base58encode($_POST['from']);break;
case 'base58decode': echo base58decode($_POST['from']);break;
case 'str2hex': echo str2hex($_POST['from']);break;
case 'password_hash': echo password_hash($_POST['from'],PASSWORD_DEFAULT);break;
case 'crypt': echo crypt($_POST['from']);break;
default: echo hash( $_POST['tipe'] , $_POST['from'] );
}
// usefull for javascript
function str2hex($string) {
return "\x".implode("\x", str_split(array_shift(unpack('H*', $string)), 2));
}
/**
* Base58 usualy used for url shortener
*/
// input integer
function base58encode($int) {
$alphabet = "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ";
$base58_string = "";
$base = strlen($alphabet);
while($int >= $base) {
$div = floor($int / $base);
$mod = $int % $base;
$base58_string = $alphabet{$mod} . $base58_string;
$int = $div;
}
if($int) $base58_string = $alphabet{intval($int)} . $base58_string;
return $base58_string;
}
//output integer
function base58decode($base58) {
$alphabet = "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ";
$int_val = 0;
for($i=strlen($base58)-1,$j=1,$base=strlen($alphabet);$i>=0;$i--,$j*=$base) {
$int_val += $j * strpos($alphabet, $base58{$i});
}
return $int_val;
}
?></div>
<script>
var result = document.getElementById('result').innerHTML;
top.document.getElementById('result').value = result;
top.document.getElementById('count').innerHTML = result.length+" characters";
</script>