入力整数値を暗号化するタスクを与えました。この整数は最大4文字ですが、英数字の文字列に暗号化する必要があります。これとは別に、私が同じ値(例えば10)から生成した結果は同じでなければならない。最も難しい部分は、暗号化された文字列の最大値は、クエリ文字列に入れなければならないため、最大15文字までです。それは難しい仕事でした。私はGoogleに尋ねようとしましたが、私には解決策が見つかりませんでした。すべての長さが長すぎて、私が必要とする要件を満たしていません。どの暗号化プロフェッショナルでもこれを手伝うことができますか?整数の短い暗号化
整数の短い暗号化
答えて
public static string GetUniquePasswordSalt(string password)
{
string uniqueSaltValue = "";
Rfc2898DeriveBytes rfc2898 = new Rfc2898DeriveBytes(password, 16);
uniqueSaltValue = Convert.ToBase64String(rfc2898.Salt);
return uniqueSaltValue;
}
アウトがRfc2898DeriveBytes
こんにちは私はそれを解読する方法を知っているかもしれませんか? –
@RyanShine暗号化することができない私の要件に従って使用するコードは、私はDBにパスワードを保存しません。そのために、私はハッシュアルゴリズムを塩で使用し、次にそれを連結して、それを解読します。私はあなたの要件を知らない。 しかし、これはあなたを助ける: https://www.codeproject.com/Articles/38804/Encryption-and-Decryption-on-the-NET-Framework – Nik
二人はかなりの票をダウン与える彼らのビジネスを気にすることをいけないのはなぜ私はちょうど助けようとしていました。 – Nik
を試してみて、 "01"
のために、 "HB6yY + f5fyOaFFyrKEcPYw ==" になります私はあなたが入力する4桁の番号を機能を望んでいることを前提としています。 [0000 .. 9999]、15文字の英数字出力を生成する。
この機能を元に戻すことはできません。可逆性が必要ない場合は、一方向ハッシュ関数が必要な処理を行います。 15桁の16進文字は60ビット、または15桁のBase32文字は75ビットです。より大きいサイズのハッシュ関数を使用し、切り捨てて16進数またはBase32に変換します。 Base32は、16進数よりも広い範囲の出力文字を提供します。
可逆性については、Format Preserving Encryptionが必要です。出力サイズは60または75の有効ビットに制限されています。 60ビットの場合、64ビットのブロックサイズを持つため、DESをベース暗号として使用します。 75ビットはより厄介です。 128ビットのAESはブロックサイズが大きすぎますので、シンプルな76ビットFeistel暗号を書く必要があります。それはあなたに良いあいまいさを与えますが、中規模のセキュリティだけを与えます。あなたはこの機能がどれくらい安全である必要があるかは言いません。
質問:「**最大**は暗号化された文字列の15の長さを持つことができます」 – zaph
わかりにくいですが、可逆でなければなりません –
前提:「整数最大6長さ」とは、6文字の000000-999999を意味します。
8バイトのブロックサイズを持ち、Base64でエンコードするアルゴリズムで暗号化すると、12文字の出力が生成されます。
データの6文字に2バイトを加えて8バイトにすると、同じ値の暗号化で最大2^16または65536の異なる結果が発生します。 ECBモードで暗号化し、Base64でエンコードします。それは12文字の出力を生成します。
入力を復元するには、Base64をデータに暗号化して復号化し、2つのランダムなバイトを削除します。
可能な暗号化アルゴリズムには、Blowfish,XTEA、DESなどがあります。
注:6桁の数値は、3バイトのバイナリ表現に変換してから、同じ6桁の入力に対して2^40の異なる出力を生成する5つのランダムバイトを可能にすることができます。
私は多分自分の質問を編集しました。方法私は使用する必要があります –
- 1. Java暗号化:整数値を暗号化する
- 2. C#の整数データの暗号化と復号化
- 3. 良い暗号化/暗号化の本
- 4. pailler暗号システムは、負の大きな整数を暗号化および復号化できますか?
- 5. Androidの短いデータセットに最適な暗号化アルゴリズム
- 6. 短い(6ビット)暗号化キー付きハッシュ
- 7. シーザー暗号暗号化Python
- 8. 暗号ブロックチェーンの復号XOR「暗号化」
- 9. OpenAM:RESTFUL API - 暗号化/暗号化パスワード
- 10. 整数を暗号化することはできますか?
- 11. .NetのDataProtection暗号化の長さを短縮しますか?
- 12. 暗号化されていない暗号化
- 13. ファイルベース暗号化(FBE)とフルディスク暗号化(FDE)の違い
- 14. 複数暗号化java
- 15. ユーザパスワードを暗号化する2ウェイ暗号化のハンドル/ストア暗号化キー
- 16. 長所/短所 - 暗号化ファイルシステム(EFS)とSQL Server用の透過的データ暗号化(TDE)
- 17. 符号なし整数を使用したJavaでの非暗号化ハッシュ
- 18. RSA暗号化/復号化
- 19. 暗号化と復号化
- 20. AES暗号化/復号化
- 21. 暗号化/復号化soll
- 22. 復号化、暗号化
- 23. カスタム暗号化暗号化/復号化ストリーム
- 24. シーザー暗号の暗号化VB.net
- 25. 暗号化Javaが正しく暗号化されない
- 26. Javascriptの暗号化ライブラリ(クライアント側の暗号化|サーバー側の復号化)
- 27. 暗号化セザールアルゴリズム
- 28. 暗号化アルゴリズム
- 29. 暗号化/ C++
- 30. 暗号化タイプ
いくつかの入力と出力のサンプルを投稿してください(投稿にはコメントではありません)。 _「最大4整数」は多くの方法で読み取ることができます。_また、長さはなぜあなたにとって重要なのですか? – mjwills
それは単なる純粋な整数であり、入力最大4整数、出力最大英数字15文字 –
あなたはその方法を望んでいる理由をリーダーに尋ねることができますか?また、「6整数」が何を意味するのか分かりません。 – mjwills