PHPの16進数を16進数に変換します
16 進数は次のように配置されます:
$dict = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
高精度の数学関数を使用しないでください。
ディスカッションに返信します。
メーデーに遊びに行きました???
<?php $dict = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; //$num=3844;//intval($_GET['hex'],16); for($test=0;$test<3844;$test++){ $num=$test; $index=0; do{ $cur=$num%62; $output[$index]=$dict[$cur]; //echo $output[$index].' '; $num=floor($num/62); $index++; //echo $cur.' '; }while($num); $output[$index]='!'; $index--; $aide=0; while($index>$aide){ $tmp=$output[$index]; $output[$index]=$output[$aide]; $output[$aide]=$tmp; $aide++; $index--; } $index=0; while($output[$index]<>'!'){ echo $output[$index]; $index++; } if(($test+1)%62==0) echo '<br />'; }?>
私はPHPにあまり詳しくなく、C言語の観点から考えているところが多いので、非常にぎこちないところもあります。さらに、私が書いたものにエラーがないことを保証することはできません。PHP には非常に曖昧な部分が多くあります。 forは3桁以下の62桁の数字は問題ないようです。
さらに、配列を文字列に変換する方法がわかりません。自分で行うことができます。私はもうやりたくないです。
値の範囲が整数の範囲を超える場合にも問題が発生します。より大きな数値を変換したい場合は、これを参照してください:
http://www.php.net/manual/en/book.bc.php
値の範囲が整数値の範囲を超える場合にも問題が発生します。 。より大きな数値を変換したい場合は、これを見てください:
高精度の数学関数は使用しないでください、サーバーが無効にしているため、すでに人々が言っています
http://www.php.net/manual/en/book.bc.php どのような混乱を起こしているのでしょうか?
高精度の数学関数を使用しないでください、サーバーがそれらを無効にしているため、人々はすでに言っています
忘れていました、私はこれらの数行のコードを長い間書いていましたが、その後、大規模な関数を試したときに何か問題が発生したことがわかりました番号。
先生、変換したい16進数は整数データの最大値を超えませんか?
これには BCMath は必要ないかもしれませんが、私は試していません:
http://phpseclib.bantux.org/code_coverage/220/PHP-5.2/Math_BigInteger.php.html
先生、あなたが知りたい 16 進数変換はプラスチックデータの最大値を超えていますか?
いいえ、その 16 進数は実際には md5 暗号化の結果です
いいえ、その 16 進数は実際には md5 暗号化の結果です
MD5 のこれほど多くの桁が整数の表現範囲を超えないということがどうしてあり得ますか?
上記のリンクのコードはダウンロードできないようです。これはダウンロードできます:
http://pear.php.net/package/Math_BigInteger/download
いいえ、その 16 進数は実際には md5 暗号化された結果です。
MD5 の結果を圧縮したいだけなので
テストコード
$c = md5('ffff');echo $c, PHP_EOL;echo $r = convert($c, 64), PHP_EOL;echo convert($r, -64);function convert($s, $to=64) { $dict = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@='; $res = ''; $b = ''; if($to > 0) { $to = ceil(log($to, 2));//调整到2的k次方 for($i=0; $i<strlen($s); $i++) $b .= sprintf('%04b', hexdec($s{$i})); while(strlen($b) >= $to) { $res = $dict{bindec(substr($b, -$to))} . $res; $b = substr($b, 0, -$to); } $res = $dict{bindec($b)} . $res; return $res; } $to = ceil(log(-$to, 2)); for($i=0; $i<strlen($s); $i++) $b .= sprintf("%0{$to}b", strpos($dict, $s{$i})); while(strlen($b) > 4) { $res = $dict{bindec(substr($b, -4))} . $res; $b = substr($b, 0, -4); } if(bindec($b)) $res = $dict{bindec($b)} . $res; return $res;}
3IWiroM3ly1itGhipJdx5x
ece926d8c0356205276a45266d361161
先進的すぎます。小柄な老人が通り過ぎた。しかし、高精度数学というキーワードも学びました。今夜勉強します。
機能があるようで、押したいものを押して回すことができます。
いいえ、その 16 進数は実際には md5 暗号化の結果です
では、なぜ 16 進数なのでしょうか? Base64ってダメなの?
MD5 の結果を圧縮したいだけなので
テストコード
$c = md5('ffff');echo $c, PHP_EOL;echo $r = convert($c, 64), PHP_EOL;echo convert($r, -64);function convert($s, $to=64) { $dict = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@='; $res = ''; $b = ''; if($to > 0) { $to = ceil(log($to, 2));//调整到2的k次方 for($i=0; $i<strlen($s); $i++) $b .= sprintf('%04b', hexdec($s{$i})); while(strlen($b) >= $to) { $res = $dict{bindec(substr($b, -$to))} . $res; $b = substr($b, 0, -$to); } $res = $dict{bindec($b)} . $res; return $res; } $to = ceil(log(-$to, 2)); for($i=0; $i<strlen($s); $i++) $b .= sprintf("%0{$to}b", strpos($dict, $s{$i})); while(strlen($b) > 4) { $res = $dict{bindec(substr($b, -4))} . $res; $b = substr($b, 0, -4); } if(bindec($b)) $res = $dict{bindec($b)} . $res; return $res;}
3IWiroM3ly1itGhipJdx5x
ece926d8c0356205276a45266d361161
実は、高さはあるのですが、16ビットMD5を使用して4桁64桁の短縮URLを作りたいのです。衝突の可能性

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。
