0

これは私の最初の質問です。mega.co.nz が truecrypt と同様にデータに高度な暗号化を使用していることは誰でもわかります。元のテキストと秘密鍵をパラメーターとして使用して文字列を暗号化するアルゴリズムがあります。

function fnEncrypt($Value, $SecretKey)
{
    return rtrim(
        base64_encode(
            mcrypt_encrypt(
                MCRYPT_RIJNDAEL_256,
                $sSecretKey, $sValue, 
                MCRYPT_MODE_ECB, 
                mcrypt_create_iv(
                    mcrypt_get_iv_size(
                        MCRYPT_RIJNDAEL_256, 
                        MCRYPT_MODE_ECB
                    ), 
                    MCRYPT_RAND)
                )
            ),
        );
}

両方のパラメーターは、ユーザーによって指定されます。マウスを使用して mega.co.nz で自動的に秘密鍵が生成され、この鍵ですべてが暗号化されます。どうすればそのようなことができますか?また、mega.co.nz や同じセキュリティを備えた他のサイトは、このキーをどのようにデータベースに保存しているのでしょうか? このキーをデータベースに置くのは安全ではありませんね。さらに、最大テキストが 250 文字の場合、暗号化はさらに長くなりますか? 暗号化されたテキストの長さを計算できますか? 元の文字列の最大値である 250 文字を使用します。

スペースを節約するために URL を最短にするアルゴリズムを開発する予定ですが、元の URL もデータベースに保存する必要があるため、これは価値がありません。前もって感謝します。

4

1 に答える 1

0

そうです、mega.co.nz はユーザーがアップロードしたすべてのデータを暗号化します。CLIENT側でデータを暗号化するためにAES(おそらく128ビット長)アルゴリズムを使用していると思います。つまり、JavaScript は Mega のサーバーにアップロードされる前にすべてのユーザー データを暗号化します。

キーは自動的に生成されますが、Mega のサーバーには保存されません。これが、このサービスを非常にユニークなものにしている理由です。キーが生成され、JavaScript がキーを使用してユーザー データを暗号化し、暗号化されたデータが Mega にアップロードされます。最後に、ファイルの取得に使用できる URL がユーザーに提供されます。URL は、暗号化キーを含むものです。Mega はキーをデータベースに保存しません。これが、暗号化されたデータのセキュリティを確保する方法です。

アップロードされたデータを取得して復号化できるのは、正しい URL を知っている人だけです。

于 2013-10-30T20:10:20.667 に答える