2

私は暗号化されたデータベースに取り組んでいます...私はm_crypt関数を使用しています..暗号化/復号化の方法をうまく取得しました..しかし、問題はこの機能を提供するためにOOクラスを作成することにあります..私は次のものを持っています:

class Encryption {
    public function __construct($Hex = null){
        if (isset($Hex)){
            if (ctype_xdigit($Hex)){
                echo "Is Hex";
            }
            if (preg_match('~^[01]+$~', $Hex)) {
                echo "Is Binary";
            }
        }
    }
}

$key = pack('H*', "bcb04b7e103a0cd8b54763051cef08bc55abe029fdebae5e1d417e2ffb2a00a3");
$Class_OO = new Encryption($key);

sはテスト目的のechoためのものです..しかし、これを有効な16進数/バイナリまたはこの文字列のデータ型として検証したいと思います。

実行:

print_r($key);

以下を返します。

¼°K~:صGcï¼U«à)ýë®^A~/û*£

しかし、これは何のデータ型ですか? ドキュメントについて: http://www.php.net/manual/en/function.mcrypt-encrypt.php 行が表示されます:

文字列をキーに変換する

キーは16進数で指定

だから私の質問は、これはどのデータ型ですか? これは ASCII の範囲であることは理解していますが、それは私の知る限りです。さらに、これに対する成功した回答は、実際のドキュメントで指定されたものではない別のキーを作成するのにも役立ちます。

4

2 に答える 2

1

あなたの質問に答えて..これが送信される唯一の実行可能なデータ型は文字列です。あなたがコメントで言ったように:

mcrypt の IV 関数を使用してから bin2hex を使用することを考えました。これを pack 関数の 2 番目のパラメーターで使用すると、間違いなく機能するようです..しかし、私の全体的な質問は、検証方法です: ¼°K~:صGcï¼U«à) ýë®^A~/û*£ 特定のデータ型まで

の許容可能な形式を作成する方法を回答しましたpack('H*')が、検証に関する限り:

if (is_string($Var)){

}

これが提出方法なので、行く方法です。bool、hex、binary、int ではありません。したがって、検証の唯一の有効な方法は、文字列として検証することです。

于 2013-06-07T00:30:37.823 に答える