問題タブ [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.
encryption - Blowfishブロックサイズ64ビット-入力が64ビットの倍数でない場合の対処方法
Blowfishを使用して長さが不明な文字列を暗号化するアプリケーションを作成しています。入力は任意の長さにすることができるため、必ずしも8バイトの倍数である必要はありません。
この状況に対処するための標準的な方法は何ですか?おそらく、文字列の最後に0を入力しますか?おそらくもっとエレガントな方法がありますか?
前もって感謝します。
encryption - 対称鍵の交換
暗号化されたデータを Web サービスに送信する WinForms クライアントがあります。WinForms クライアントは Symmetric RijndaelManaged sessionKey を作成し、「ハードコードされた RSA 非対称公開鍵」も持っています。
EncryptedXml クラスを使用しているため、データを簡単にパッケージ化できます。
Web サービスには、秘密鍵と公開鍵の両方が「ハードコーディング」されており、SessionKey を正常に復号化し、それを使用して送信中の実際のデータを復号化できます。
これは、EncryptedData クラスによってほとんど自動的に処理されます。
私が抱えている問題は、返信したいときにWebサービス側で、送信されたSessionKeyを取得する方法がわからないことです。
Web サービス側で復号化を行う前に、暗号化されたセッション キーを確認できますが、XML を復号化すると、それはなくなります (したがって、応答用のセッション キーがありません)。
この暗号化されていないキーを取得する方法はありますか?
vb.net - RjindaelとRSAを使用して、VisualBasic.NETのQRコードに保存されているデータを暗号化する
一部のデータ(できれば500バイト未満)を暗号化してQRコードに保存したいと考えています。もともとRSAを使いたかったので、データはユーザーAの秘密鍵とユーザーBの公開鍵で署名されていましたが、残念ながらVB.NETはそれほど多くのデータを暗号化するのが好きではありません。Rjindaelを使用して実際のデータを暗号化し、次にRSAを使用してRjindaelが使用するキーを暗号化する必要があることを読みました。しかし、ある種のチュートリアルなどをWebで検索できるのはあまり幸運ではありません。
また、これをQRコードで保存したい場合、Rjindaelが使用する暗号化データと暗号化キーの両方を保存する必要はありませんか?これはすべて合うと思いますか?中程度のエラー訂正でバージョン40を使用できる場合があります(http://www.denso-wave.com/qrcode/vertable4-e.htmlによると、18,672個の「データビット」が格納されています)が、使用したいと思います。可能であれば、より低いバージョン(つまり、より小さい)。
QRコードの生成は問題になりません(そのための.NETライブラリがあることは知っています)。最初にデータを暗号化することに興味があります。
ご協力いただきありがとうございます!
サム
security - リバース エンジニアリングから暗号化キーを保護するにはどうすればよいですか?
私のソフトウェアは AES Rijndael を使用しています。
SHA-256 ハッシュを使用して、任意の長さの文字列からキーを生成し、これを秘密キーと公開キーの両方として渡します。この例では、2 つを区別する必要がないためです。
キーが実行可能ファイルからハッキングされるのを防ぐにはどうすればよいですか?
リテラルを使用するのではなく、実行時にいくつかの事前定義された手順でキーを生成することを知っていますが、それでもキーは AES 初期化関数に送信される直前にメモリ内にあるため、非常に簡単に取得できます。
AES は明らかに非常に安全ですが、代わりに誰かが実行可能ファイルを壊した場合、何の役に立つのでしょうか?
この問題を解決するときの一般的な方法はありますか?
vb.net - VB.NETで、AESキーと暗号化されたデータを同じMemoryStreamに書き込んでいない
対称暗号化を使用して一部のデータを暗号化し、データを使用して復号化するために必要なキーをMemoryStreamに保存しようとしています。(これだけでもセキュリティの面で非常に馬鹿げていることはわかっていますが、RSAを使用して対称鍵を暗号化します。ただし、今はこの部分を機能させようとしています。)
FileHelpersライブラリを使用して、区切り文字のデータを解析しています(データにセミコロンが含まれるとは思わないため、セミコロン)。残念ながら、私の復号化関数では、解析中に1つのレコードしか返されません。また、この関数の最後に作成された暗号化されたデータの文字列全体を表示すると、複数のレコードを使用しているようには見えません。
新しい暗号化ストリームを作成すると、デフォルトでメモリストリームの先頭に設定されるので、暗号化されたデータを書き込むと、メモリストリームに書き込んだばかりのデータが上書きされるのではないかと思います。そうだと思いますか?
ご協力いただきありがとうございます!
.net - 文字列の復号化中に時折発生する不良データ エラー: System.Security.Cryptography.CryptographicException
私の ASP.NET WebForms アプリ(アプリは Windows Server 2008 R2、IIS 7.5、およびランタイム v4.0 統合モード アプリ プールで実行されています)では、データを暗号化し、それを QueryString に配置し、System.Security.Cryptography.SymmetricAlgorithm
クラスを使用してデータを復号化しています。しかし、次の例外が発生しているデータの復号化で問題が発生することがあります。
不良データ。
説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
例外の詳細: System.Security.Cryptography.CryptographicException: 不正なデータです。
ソース エラー:
現在の Web 要求の実行中に未処理の例外が生成されました。例外の発生元と場所に関する情報は、以下の例外スタック トレースを使用して特定できます。
スタックトレース:
[CryptographicException: 不正なデータ。]
System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 時間) +33
System.Security.Cryptography.Utils._DecryptData(SafeKeyHandle hKey、Byte[] データ、Int32 ib、Int32 cb、Byte[]& outputBuffer、Int32 outputOffset、PaddingMode PaddingMode、Boolean fDone) +0
System.Security.Cryptography.CryptoAPITransform.TransformFinalBlock(Byte[] inputBuffer、Int32 inputOffset、Int32 inputCount) +313
System.Security.Cryptography.CryptoStream.FlushFinalBlock() +33 Cryptography35.SymmetricEncryptionUtility.DecryptData(Byte[] data, String keyFile) in E:\Documents\@Library\Cryptography35\Cryptography35\SymmetricEncryptionUtility.cs:124 Cryptography35.SymmetricQueryString.SymmetriclyEncryptedQueryString ..ctor(String encryptedData, String keyfilename, String algorithmname) in E:\Documents\@Library\Cryptography35\Cryptography35\SymmetricQueryString\SymmetriclyEncryptedQueryString.cs:67 WebForms.Web.Views.purchase_a.GetSymmetriclyEncryptedQueryString() in E:\Documents\ WebForms.Web\Views\purchase-a.aspx.cs:35 WebForms.Web.Views.purchase_a.Page_Load(オブジェクト送信者、EventArgs e) E:\Documents\WebForms.Web\Views\purchase-a.aspx.cs :56 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp、オブジェクト o、オブジェクト t、EventArgs e) +14 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(オブジェクト送信者、EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +91
System.Web.UI.Control.LoadRecursive() +74 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207 バージョン情報: Microsoft .NET フレームワーク バージョン:4.0.30319; ASP.NET バージョン:4.0.30319.1
指摘したように、実行するたびにではなく、時々このエラーが発生します。どこで間違っているのかわかりません(暗号化段階または復号化段階で)これに使用したコードは次のとおりです。
SymmetriclyEncryptedQueryString
クラス
SymmetricEncryptionUtility
クラス
更新 私は何か他のものを考え出した。私のページの1つで、次のことを行っています。
それが問題の原因であると考えました。(暗号化されたデータはクエリ文字列内にあることを思い出してください) からそのページにアクセスしようとするhttp
と、それが にリダイレクトされhttps
、ブームになります。それは私にそのエラーを与えます。さて、エラーの原因を見つけましたが、とにかく発生するべきではありません。
java - java.security.InvalidKeyException: キーの長さが 128/192/256 ビットではありません
私はJavaが初めてで、生成された対称キーでAES-128対称暗号化とRSA-1024非対称暗号化を使用してハイブリッド暗号化を使用しようとしていました。この例外が発生する理由を誰かが助けてくれますか? 私はすでに他の投稿をフォローしており、Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files バージョン 6 を適切なフォルダーにダウンロードしました。
私が得た例外:
c# - 文字列のデコードとエンコード - 対称アルゴリズムのハードコードされた KEY
文字列データをエンコードおよびデコードするための以下のクラスを作成しました(1つのキーを使用した対称アルゴリズム):
以下のような使用法:
MyKey について問題があります ->対称アルゴリズムのキーをハードコードして上位クラスで使用するにはどうすればよいですか?
上位コードのエラーは次のようになります。
現在の Web リクエストの実行。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
System.Security.Cryptography.CryptographicException: 指定されたキーは、このアルゴリズムに対して有効なサイズではありません。
このエラーを修正するにはどうすればよいですか?
前もって感謝します
php - PHP での AES-256 暗号化
AES-256AES256_encode($dataToEcrypt)
に暗号化するためにPHP関数が必要で、別の関数は反対のことを行います。この関数が持つべきコードを誰かが知っていますか?$data
AES256_decode($encryptedData)
ssl - SSL+追加の暗号化レイヤー
お客様がSSLに加えて暗号化の第2層を要求した場合、どうすればよいでしょうか。
たとえば、SSLトンネルがあり、顧客はそのトンネルを流れるデータに対称鍵暗号化を使用することを望んでいます。対称鍵はセッションベースであり、元のSSLトンネルを介してサーバーからクライアントに送信されます。
これがどのように安全であるかがわかりません。SSLトンネルが危険にさらされると、理論的には、セッション中に対称暗号化を実行するためにサーバーから送信される対称鍵も危険にさらされます。
誰かがこの状況について別の視点を提供できますか?事前に共有シークレットが確立されていれば(ワンタイムパスワードなど)、これによりセキュリティが強化されると確信していますが、シークレットはSSLを介してセッション全体に渡されるため、表示されません。それが私たちに追加のセキュリティをどのように購入しているか。
あなたはどう思いますか、そしてあなたは同様の経験をしましたか?
ありがとうございました