ここで私が解決しようとしている問題があります。 ASP.NET MVCで構築されたいくつかのWebソフトウェアをリリースしていたとし、エンドユーザーがXユーザーをシステムに追加できるようにしたいとしましょう。ソフトウェアは自社のサーバーでホストされます。C#RSA暗号化プライベート復号化公開?
ユーザーが新しいユーザーを追加しようとすると、そのユーザーは暗号化された文字列をファイルから読み込みます。ウェブサイトがそれを解読すると、クリアテキストが許可されたユーザーの数になります。
私の最後にこの文字列を生成するために暗号化するために、私の最後にはどのように最善の/最も単純な方法ですか?明らかに、私は、エンドユーザーが自分の暗号化された文字列を回転させず、私の代わりにできることを保証したいと思います。私はストリングを解読する方法がわからないように、私のソースを難読化しようとすることを心配したくありません。
プライベートRSA鍵で暗号化して公開鍵で復号化することはできますか?私は、下のコードでそれを運んでいませんでした:
var rsa = new RSACryptoServiceProvider();
var pubicKey = rsa.ToXmlString(false);
var privateKey = rsa.ToXmlString(true);
var test = "this string needs to be encrypted then decrypted";
var rsa2 = new RSACryptoServiceProvider();
rsa2.FromXmlString(privateKey);
var encryptedBytes = rsa2.Encrypt(Encoding.UTF8.GetBytes(test), false);
var encryptedString = Convert.ToBase64String(encryptedBytes);
var rsa3 = new RSACryptoServiceProvider();
rsa3.FromXmlString(pubicKey);
encryptedBytes = Convert.FromBase64String(encryptedString);
var decryptedString = Encoding.UTF8.GetString(rsa3.Decrypt(encryptedBytes, false));
ソフトウェアは、サーバー上で実行されています。ライセンスファイルがどのようにデコードされているかを判断するために "彼ら"があなたのソースを覗いていると判断された場合、デコード機能を変更して必要なものを返すのは簡単ではありません。 –
右...私が以下で言ったように。秘密鍵で何かを暗号化することはできません。暗号化された文字列を兄弟の公開鍵で復号化できるだけですか?公開鍵はサーバ上に存在し、秘密鍵にアクセスすることはありません。 – aherrick
鍵がどこにホストされているか教えてください。私はあなたが公開鍵があなたのクライアントでホストされ、秘密鍵があなたのホストであることを意味しますか? –