-1

GUID で AES 暗号化を実行するにはどうすればよいですか?

クライアント コンピューターには GUID とその公開キーが保存され、内部サーバーには秘密キーとその GUID が保存されます。

これは、AES 暗号化を生成するために必要なすべての入力ですか?

4

3 に答える 3

8

AESは対称暗号化アルゴリズムです (暗号化キーと復号化キーは同じです)。公開鍵と秘密鍵について話している場合は、RSA などの非対称暗号化アルゴリズムが必要です。

于 2008-11-05T14:40:20.010 に答える
1

バイトのストリームとして表現できるものは何でも暗号化できます。質問の「レシピ」に欠けている唯一の成分は、暗号化キーです。

void encrypt(char *plaintext, char *key, char *crypt)
{
  // Encrypt plaintext with the key, returning the result in crypt.

}

ノート:

  • PKI (公開/秘密鍵) を使用して、各参加者は通常、独自の秘密鍵を安全な方法で維持し、公開鍵を自由に配布します。メッセージは受信者の公開鍵を使用して暗号化され、各受信者が秘密鍵を使用して復号化します。質問の言い回しから、このモデルを使用していることは明らかではありません。

  • Jesse は、デモンストレーション目的で良い例を提供します。おそらく本番アプリケーションでキーをハードコーディングしたくないことを覚えておいてください..

于 2008-11-05T15:14:43.793 に答える
0

AES(Rijndael)を使用した文字列データの簡単な暗号化/復号化は次のとおりです。

private static readonly byte[] rgbKey = Encoding.UTF8.GetBytes("Ni=9OE=$i+62eprIuDr@ewOu5I9r34Ro"); // change to your own secure key

private static readonly byte[] rgbIv = Encoding.UTF8.GetBytes("to$eO_e!maI*o3ut"); // change to your own secure initialization vector

public static string Encrypt(string originalString)
{
    if (string.IsNullOrEmpty(originalString))
    {
        throw new ArgumentNullException(
           "originalString",
           "The string which needs to be encrypted can not be null.");
    }

    using (var cryptoProvider = new RijndaelManaged())
    using (var memoryStream = new MemoryStream())
    using (var encryptor = cryptoProvider.CreateEncryptor(rgbKey, rgbIv))
    using (var cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write))
    using (var writer = new StreamWriter(cryptoStream))
    {
        writer.Write(originalString);
        writer.Flush();
        cryptoStream.FlushFinalBlock();
        writer.Flush();
        return Convert.ToBase64String(memoryStream.GetBuffer(), 0, (int)memoryStream.Length);
    }
}

public static string Decrypt(string encryptedString)
{
    if (string.IsNullOrEmpty(encryptedString))
    {
        throw new ArgumentNullException(
           "encryptedString",
           "The string which needs to be decrypted can not be null.");
    }

    using (var cryptoProvider = new RijndaelManaged())
    using (var memoryStream = new MemoryStream(Convert.FromBase64String(encryptedString)))
    using (var decryptor = cryptoProvider.CreateDecryptor(rgbKey, rgbIv))
    using (var cryptoStream = new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read))
    using (var reader = new StreamReader(cryptoStream))
    {
        return reader.ReadToEnd();
    }
}
于 2008-11-05T14:49:23.827 に答える