問題タブ [steganography]
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.
image - LSB ステガノグラフィでの PNG ファイル サイズの増加
PNG画像ファイル内のテキスト情報を非表示にする必要がある画像ステガノグラフィの問題に取り組んでいます。ステガノグラフィ操作が成功すると、生成される結果の画像は元のファイルよりも大きくなります。LSB ステガノグラフィ (1 ビット、2 ビット、3 ビット) を使用しているため、格納されているデータは画像の既存のビット内にあるため、ファイル サイズは大きくなりません。元のイメージにバイトが追加されることはありません。だから、なぜこれが起こるのか理解できません。概念的には、結果のファイル サイズが増加することはありません。
例えば
オリジナルファイルサイズ:88KB テキストファイルサイズ:382KB 結果のPNGファイルサイズ:487KB
PNGは「可逆データ圧縮」を採用していると読みました。したがって、PNGが画像を圧縮形式で保存している可能性があると想定しているため、画像からその画像バイトを読み取ると、画像が拡張され、その結果、画像サイズが大きくなります。私が間違っている場合は修正してください。あらゆる種類の助けをいただければ幸いです。
android - Android bitmap.setPixel(x,y,color) は値で渡される設定です
Bitmap.create(25, 25, Config.ARGB_8888) を使用してビットマップを作成します。
アルファ値が 0xA9 以下のピクセルを設定すると、渡されたものがピクセルに設定されません。別のスタック オーバーフローの質問を読み、setHasAlpha(true) を指定しました。これはテストで行いましたが、それでも問題はありませんでした。問題を解決しません。
私の問題を示す私のAndroidテストケースは次のとおりです。
このコードは次の出力で失敗します:junit.framework.AssertionFailedError: 現在のアルファ値: a9000000、予想されるピクセル値: a9fefefe、実際のピクセル値: a9fdfdfd
c - 配列を変更するには?
現在、いくつかの .wav ファイルを使用してステガノグラフィーを試みています。
私がやりたいのは、サウンド ファイルを配列に開き、その配列を変更するプログラムを作成することですが、それで行き詰まっています。
現在私は持っています:
現在できることは、配列を印刷することだけですが、配列の値を変更する方法はありません。特に配列が非常に大きいため、最終的に配列を印刷する必要がないことはわかっていますが、ファイルの感触をつかみたいので、リスニングなしで配列値をASCII値に変更できます音の変化の多くを検出します。
c - 誰でもセグメンテーション違反を手伝ってくれます
デコーダーに問題があり、誰か助けてくれるかどうか疑問に思っていましたか?
基本的に、ステガノグラフィーエンコーダー用のデコーダーを構築しようとしています。エンコーダーは、メッセージからのビットをサウンドファイルのすべてのバイトの LSB に配置します。
デコーダーの仕事は、それらのビットを集めて、それらから新しいメッセージを作成することです
このコードは、次のことを行うためのものです。
コード: すべて選択
メッセージ配列の場所に移動します。
bitindex を 0 に設定し、7 までインクリメントします // (8 ビットを 1 バイトに)
サウンドアレイの場所に移動
サウンドビットが等しい場合は、新しいバイトに 0 を追加します。そうでない場合は、新しいバイトの末尾に 1 を追加します
左にビットシフトを 1 回実行する
ビットインデックスをインクリメントする
さまざまな を使用printf
すると、クラッシュする前に約 3/4 回スムーズに実行されることがわかります。
実際のループは次のようになります。
何かに役立つことを願っています。
c++ - ハッシュアルゴリズムのテストベンチプロセスとは何ですか?
MD*やSHA*などの標準アルゴリズムの実装を作成したとします。それが正しいことをどのようにして知ることができますか?同じアルゴリズムの異なる実装は同じダイジェストを生成する必要がありますか?
java - 結合された画像から 2 つの画像を抽出する方法は?
重複の可能性:
ステガノグラフィー用の Java ライブラリはありますか?
//この結合された.jpgを前のfirst.jpgとsecond.jpgに抽出したい? // このコードと組み合わせた 2 つの画像を抽出する方法は?
java - イメージ ステガノグラフィ Java
画像にエンコードされたデータをデコードしようとしています。エンコードは正常に行われ、画像のデータ サイズも変更されますが、何らかの理由でデコードされたデータは空の文字列になります。エンコードされたデータが失われたか、このコードに何らかの誤りがあります。
私が犯している間違いや、このコードに欠けているものがある場合は、親切にお知らせください。
java - エンコードされた画像 Java のデコード出力の奇妙な ASCII 文字
画像内の文字列をエンコードする画像暗号化プログラムを作成しています。
私は.png
画像を扱っています。
エンコードは次の手順で実行されます。
- イメージのピクセルは、getRGB() を使用して 2D 配列に格納されます。
- 文字列内の各文字はバイナリ形式に変換され、配列に格納されます。
- ピクセルのすべてのバイトの LSB は
4byte
、文字のバイナリ形式のすべてのビットに従って変更されます。最初のバイトの LSB は 0 番目の位置、2 番目のバイトの LSB は 8 番目の位置、3 番目のバイトは 16 番目の位置、4 番目のバイトは 24 番目の位置です。 - エンコード後、変更されたピクセルは setRGB() メソッドを使用して元の画像に書き込まれます。
デコードの場合:
- getRGB(); を使用して画像のピクセルを読み取ります。
- データの取得には、逆のエンコード方法が適用されます。
8 ビットごとに、デコードされたビットを含む int が文字に変換されます。次に、他の文字のゼロで初期化されます。
/li>
変化は反復に応じて 1,256,65536,16777216 です。0 番目、8 番目、16 番目、24 番目のビットが 1 です。
コードは正常にコンパイルされます。しかし、デコードした後、出力に奇妙なASCII文字が表示されます。この理由を見つけることができませんでした。だから私はここで専門家に相談しています。
encryption - 256 ビットの公開鍵を可変長の一連の単語にエンコードする方法
[編集]より簡潔で明確になるように、質問を完全に言い換えました
encode
というような1-1 関数を探しています。
encode( 32_bytes_of_data ) => {w_1, w_2, ..., w_n}
、 どこ:- w_1 ... w_n は実際の英単語です
- n は妥当なはずです - 256 ワードで 256 ビットをエンコードしたくありません
理想的には: - n はすべての入力値で同じであってはなりませんが、それは非常に重要な要件ではありません。
目標 - 公開鍵を人間がより読みやすく、認識しやすくすること。
java - .bmp 画像を読み取り、画像の 10 番目のバイトから 10 を引き、Java で画像を再作成します。
.bmp 画像から画像バイト/ピクセル/データを読み取り、それをバイト/文字/int/etc 配列に格納するアプリケーションを作成しています。
ここで、この配列から、配列の 10 番目のインデックスに格納されているデータから 10 (10 進数) を減算します。
作成した配列に画像情報を正常に格納できました。しかし、アレイ情報を .bmp イメージに書き戻そうとすると、作成されたイメージが表示されません。
これは私がそうしようとしたコードです。
このコードでは、配列の 10 番目のインデックスから 10 を引いていません。