問題タブ [encryption-symmetric]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2721 参照

c# - 暗号化されたファイル サイズの計算が実際のサイズと一致しない

Rijndael を使用して暗号化するファイルのサイズを計算する必要があります。

このサイトとグーグルの他の回答によると、暗号化されたデータの長さを計算する正しい方法は次のとおりです。

私の場合、暗号化されていないファイルの長さは 5,101,972 バイトで、128 ビットの暗号化キーを使用しているため、ブロック サイズは 16 バイトになります。したがって、式は次のとおりです。

暗号化されたファイルの長さは 5,101,984 バイトです。

しかし、暗号化後のファイルのサイズは 5,242,896 で、140,912 バイトという大きな違いがあります。

今..私は明らかに何か間違ったことをしていますが、それが何であるかを理解することはできません. 以下は、暗号化および復号化のテスト コードと、暗号化されたサイズの計算に使用される方法です。

注: 開始時の計算では、暗号化されたファイルの開始時に元のファイルの長さと IV を格納するために使用される余分な 24 バイトは含めていません。必要以上に式を複雑にしたい。

0 投票する
10 に答える
276186 参照

php - PHP AES 暗号化/復号化

0 投票する
1 に答える
1421 参照

c# - サービス アカウントの適切なパスワードの保存と取得

データベースにパスワードを適切に保存することについて私が見つけて読んだ情報のほとんどは、パスワードのクリアテキストを各ユーザーの一意のソルト値でハッシュし、そのハッシュをデータベースに保存する必要があると述べています。しかし、このプロセスは私のニーズには合いません...

特定のサービス アカウントを使用して、異なるデータセンター内の他のリモート マシンに接続する必要がある C# で記述された Windows サービスがあります。これらのサービス アカウントはドメイン ユーザー アカウントに似ていますが、背後に実在の人物は存在せず、特定のサーバーごとにサービス ペイロードを実行するための適切なアクセス許可を持っているだけです。サービス アカウント情報は、各アカウントのパスワードを含む SQL Server テーブルに格納されます。現在、対称暗号化 (Rijndael) を使用して DB テーブルのパスワードを難読化しています。キーは、厳密なアクセス許可を持つ別の構成ファイルに保存されます。

サービスにリモート マシンで実行するスケジュールされたペイロードがあるたびに、テーブルで適切なサービス アカウント情報を検索し、キーを使用して復号化します。基本的にこのサービスのさまざまな設定を管理するためのフロントエンドである内部 Web サイトもあり、そこで管理者はサービス アカウントのパスワードを表示および変更できます。

これは物事を安全に保つための良いアプローチですか? このスキームに明らかな欠陥はありますか?

0 投票する
2 に答える
625 参照

javascript - 単純なXORメッセージ(Javascript / Tcl)?

HTTP GET / POSTを介して送信する前に、クライアント側でユーザー名/パスワードをスクランブルする必要があります。そして、サーバーはデータベースをチェックする前に、Tclでそれをデコードします。

現在、クライアント側でJavaScriptを使用することを考えています。Javaアプレットも同様です。

Simple XORまたは他の方法を使用して、簡単にそれを達成できる方法はありますか?(例をいただければ幸いです)

C / Python / .NET / Javaでいくつかのサンプルを見つけましたが、JavaScriptとTclでは見つかりませんでした。

残念ながら、SSLは使用するオプションではありません。

0 投票する
3 に答える
16110 参照

sql-server - WHERE 句の SQL 暗号化列

対称キーを使用して SQL 列レベルの暗号化を適用しようとしています。データベース マスター キー、証明書、および対称キーを作成するために必要な最初の手順は単純明快であり、対称キーを使用したデータの暗号化/復号化を正常にテストしました。

ただし、データが暗号化されると、クエリを実行する最善の方法がわかりません。例えば

確かに完全なテーブルスキャンになりますか?

私がうまくいくかもしれないと思った別のオプションは、最初に検索条件を暗号化することです。

ただし、生成される暗号化された値は常に異なるため、これは機能しません。

どんな提案でも大歓迎です。

0 投票する
1 に答える
1158 参照

sql-server-2005 - SQL Server 2005 で既存の列の安全な暗号化を使用する方法

UPDATE ステートメントを使用して SQL Server 2005 の既存の列を暗号化し、古いコンテンツを新しい暗号化された列に移動したいと考えています。

したがって、対称と非対称の 2 つの選択肢があります。

私が抱えている問題は、対称キーを使用すると、次のような列を読み取るためにパスワードを SP に埋め込む必要があることです。

データを選択したい場合でも、キーを再度開く必要があります

ストアド プロシージャ内にプレーンテキストのパスワードを埋め込んでいるので、これは重要な点ではありません。

いくつかの質問

  1. これを回避する方法はありますか?つまり、このパスワードを使用して証明書を作成し、代わりに証明書を参照しますか?
  2. この証明書は (SSL のように) 購入する必要がありますか、それとも独自に作成できますか?
  3. この方法は、フェールオーバー クラスター化されたデータベース全体で拡張可能ですか。つまり、暗号化はマシンに基づいておらず、提供されたパスワードのみに基づいています。したがって、フェイルオーバーは引き続きパスワードを読み取ることができます

ご協力いただきありがとうございます

0 投票する
2 に答える
3205 参照

java - これは安全な暗号化方式ですか

対称キー暗号化を使用して機密データを保護する Android 用のアプリケーションを作成しています。私が知る限り、Android は「PBEWithMD5AndDES」のみを直接サポートしています。このアルゴリズムはどの程度安全ですか? また、以下にコードを含めました(Android以外)。私のコードはデータを正しく暗号化していますか?

0 投票する
1 に答える
4146 参照

encryption - 初期化ベクトルとソルトを暗号文と一緒に渡すのは安全ではありませんか?

私は暗号化を実装するのが初めてで、まだ基本を学んでいるようです。

オープン ソース コードベースに対称暗号化機能が必要です。このシステムには 3 つのコンポーネントがあります。

  • 一部のユーザー データと、それが暗号化されているかどうか、およびその方法に関する情報を格納するサーバー
  • ユーザーがサーバーへの送信時に簡単なパスワードでデータを暗号化し、受信時に同じパスワードで復号化できる AC# クライアント
  • 同じことを行うため、C# クライアントの暗号化方式と互換性がなければならない JavaScript クライアント

さまざまな JavaScript ライブラリを見て、SJCL に出くわしました。SJCL の素敵なデモ ページは次のとおりです: http://bitwiseshiftleft.github.com/sjcl/demo/

このことから、暗号文を解読するためにクライアントが (使用するパスワード以外に) 知っておく必要があることは次のとおりです。

  • 初期化ベクトル
  • パスワードにソルトが使用されている
  • キーサイズ
  • 認証強度 (これが何であるかは完全にはわかりません)

このすべてのデータを暗号文で保持することは比較的安全ですか? これはオープンソースのコードベースであり、ユーザーに覚えてもらうように頼まない限り、これらの変数を合理的に非表示にする方法はありません (そうです)。

アドバイスをいただければ幸いです。

0 投票する
2 に答える
1639 参照

encryption - 対称アルゴリズムに対するブルートフォース攻撃で、試行の半分の後にキーを見つける可能性が50%あるのはなぜですか?

暗号化のテキストには、対称アルゴリズムに対するブルートフォース攻撃では、試行の半分の後にキーが見つかる可能性が50%あると記載されています。

たとえば、56ビットキーを使用するDESは、最初の2 55回の試行後にキーを見つける可能性が50%になります。

対称暗号化アルゴリズムに対するブルートフォース攻撃で、試行の半分の後にキーが見つかる可能性が50%あるのはなぜですか?それの数学的証明は何ですか?

0 投票する
1 に答える
1453 参照

algorithm - ヒル暗号アルゴリズムを理解する

ヒル暗号を実装したいのですが、アルゴリズム自体の理解に問題があると思います。

使用するキーは 2X2 マトリックスで、毎回 2 文字をエンコードします。キー マトリックスを 2 文字のマトリックスで乗算し、その結果を次の式のように 26 でモジュラスします。

私はこのようにしていますが、何か問題があります。本の例を使用してアルゴリズムをテストします。プレーンテキストがfridayあり、キーが次のとおりであるため: int key[][] = {{5, 8}, {17, 3}}; 結果は になりますPQCFKU

最初の文字についてはf、、、、rf= 5 アルファベットr=17順の暗号化f(5*5 + 17*8)%26 =5 => fP

私が犯したエラーはどこにありますか?