none
ファイルの暗号化、復号化の方法について RRS feed

すべての返信

  • 動作させるコードを、まったく変更を加えない状態で Windows アプリケーションに移植してもエラーが起きますか?
    2006年3月23日 2:21
  • 返信が遅くなりました。

    やはり同じです。「キーセットがありません。」になります。(少なくともまったく同じでは動きませんので、最低限変更はしてますが。)

    2006年3月27日 3:59

  • こんにちは。

    MSDNに
    Encrypt メソッドと Decrypt メソッドの両方で、コンピュータにインストールされている暗号化サービス プロバイダ (CSP: Cryptographic Service Provider) およびメソッドを呼び出すプロセスのファイル暗号化キーを使用します。

    現在のファイル システムは NTFS としてフォーマットされている必要があり、また現在のオペレーティング システムは Microsoft Windows NT 以降である必要があります。」

    と書いてあります。

    お使いのPCはNTFSでフォーマットされていますか。



    2006年3月27日 8:40
  • こんにちは。

    はい、NTFSフォーマットです。

    2006年3月28日 1:57
  • こんにちは。

    >少なくともまったく同じでは動きませんので、最低限変更はしてますが。
    私もまったく同じコードで動作させました。
    ちなみに、どこを変えたんでしょうか?
    2006年3月28日 2:59
  • 少し長めで申し訳ありませんが、そのまま書き込みました。よろしくお願いします。

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    using System.Security.AccessControl;

    namespace WindowsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    string FileName = "test.dat";

                    Console.WriteLine("Enceypt " + FileName);

                    // Encrypt the file.
                    AddEncryption(FileName);

                    Console.WriteLine("Decrypt " + FileName);

                    // Decrypt the file.
                    RemoveEncryption(FileName);

                    Console.WriteLine("Done");
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                    MessageBox.Show(ex.Message, "");
                }

                Console.ReadLine();
                MessageBox.Show("End", "");
            }
            public static void AddEncryption(string FileName)
            {
                // Create a new FileInfo object.
                FileInfo fInfo = new FileInfo(FileName);

                // Add encryption.
                fInfo.Encrypt();

            }       
            public static void RemoveEncryption(string FileName)
            {
                // Create a new FileInfo object.
                FileInfo fInfo = new FileInfo(FileName);

                // Remove encryption.
                fInfo.Decrypt();

            }
        }
    }

    2006年3月28日 5:25
  • 諸農です。

    同じコードを試してみましたが、私のところでは問題はありませんでした。

    環境は以下の通りです。
    WindowsXP PRO SP2
    VC#Express

     

    2006年3月30日 14:37
  • 私の方の環境はWindowsXP PRO SP2、C#2005PROです。

    どういう違いがあるのでしょうね?未だ不明です。

    2006年3月31日 0:40
  • Protected Storage サービスが「停止」になっているか、インストールされていないとか?
     
    もしくは、Windows に対してユーザ追加を行う時の問題で、プライベートキーコンテナが作成できていないか、コンテナに対するアクセス権限がない可能性があります。この場合は、
     
     
    こちらを参項にしてください。
     
    2006年3月31日 1:23