問題タブ [sjcl]
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.
json - このJSONスニペットをデコードしようとすると、SJCLが「これはJSONではない」と報告するのはなぜですか?
私はSJCLを使用していますが、小さなASCII文字列でも問題なく動作します。
しかし、このJSON(HTMLページの暗号化の結果)をデコードしようとすると、"this is not JSON!"
エラーが発生します。
JSONはSJCLによって生成されており、LZWとbase64を使用してエンコードおよびデコードしましたが、同じワークフローの小さな文字列ではこのエラーは発生しません。
エラーメッセージの発信元をデコード機能まで追跡しました。正規表現が失敗していると思いますが、これは完全に形成されたJSON文字列のように見えるので、理由がわかりません。
ただし、JavaScriptの評価を行うと、構文エラーで失敗するかのように間違っている可能性があります。しかし、それをファイルにダンプすると、Pythonはそれをうまく解析します。
javascript - JAVA6のjavascriptエンジンライブラリからStanfordjavascriptライブラリ暗号化関数を呼び出す際の問題
JAVA6のjavascriptエンジンライブラリからスタンフォードjavascriptライブラリ暗号化関数を呼び出そうとしています。JAVA6でjavascriptエンジンライブラリを使用する以下のコードでは、次のエラーが発生します。
どんな助けでも大歓迎です。
}
javascript - JSのSJCLとRubyのOpenSSLを使用した楕円曲線暗号
サーバー側でECCを使用してデータを暗号化し、ブラウザーで復号化できる必要があるWebアプリケーションに取り組んでいます。私が見つけたJSでこれが可能な唯一のライブラリはSJCLです。ただし、SJCLでのECCサポートは現時点では少し放棄されているように思われるため、キーのシリアル化をサポートし、理解しやすいようにデモを備えたフォークを使用しました。
まず、JSでECCキーペアを生成します。
これは次のようなものを出力します:
次に、この公開鍵をOpenSSLで理解できる形式に変換しようとしました。
この時点まで、私のコードは正常に機能します。つまり、例外は発生しません。
ただし、両方のライブラリで共有シークレットを生成すると、SJCLが96バイトの長さの「タグ」を生成し、OpenSSLが48バイトを生成することがわかりました。
私の問題は、SJCLがプレーンECDHを使用していないことです。それはクイックグーグル検索に基づいてECMQVのように見えるものを使用しています。したがって、「タグ」SJCL出力は曲線上のポイント(ポイントのxおよびy座標、2 * 48バイト)であり、OpenSSL出力は共有シークレット(ECDHで指定されたポイントのx座標)でした。
私の問題は、OpenSSLでECMQVがサポートされているかどうかわからないことです(私が正しければ、いくつかの特許の問題があります)。あったとしても、ルビーバインディングはそれをサポートしていないようです。
だから私の実際の質問:
- 上記で文書化された私の調査結果は正しいですか?
- はいの場合、ECMQVをサポートするOpenSSLの代わりに使用できる他のrubyライブラリを誰かが知っていますか?
javascript - 安全なJavascript暗号化ライブラリ?
安全な暗号化を提供するJavaScriptライブラリを探しています。クライアントはキーを生成する必要があり、サーバーにアップロードされたすべてのデータは暗号化され、ダウンロードされたすべてのデータは復号化されます。認証された暗号化スキームが必要です。CTRまたはCBCだけでは不十分です。
sjclについて聞いたのですが、sjclはデータ全体を一度にしか暗号化できないようです。データをブロック単位で暗号化する方法が見つかりませんでした。アップロードされたファイルは非常に大きくなる可能性があるため、このアプローチは実行可能ではありません。update()とfinal()の2つのメソッドを持つJava暗号インターフェースのようなものが必要です。
必要なことを実行しているように見えるnodeJS暗号化ライブラリを見つけましたが、ブラウザ側での使用方法がわかりません。
google crypto-jsを見つけましたが、このライブラリは認証された暗号化を提供していないようですが、標準モードのみを提供しています。
sjclを使用してデータをブロック単位で暗号化する方法はありますか?ブラウザ側でnodeJS暗号ライブラリを使用するには?crypto-jsで認証付き暗号化を使用するには?または、必要なものを提供する別の安全なjavascriptライブラリはありますか?
objective-c - ObjC に相当する SJCL.js
RESTful Web サービス用のクライアント アプリを開発しています。Web アプリは、一部のクライアント サイトの暗号化に Stanford JS Crypto ライブラリを使用しており、アプリでもそれを行う必要があります。
しかし、SJCL ライブラリはデータを AES256 で暗号化するだけでなく、データを簡単にラップできるようなものを提供します。詳細については、SJCL の短い概要ページをご覧ください: http://crypto.stanford.edu/sjcl/
SJCL が ObjC で行うようにデータを暗号化するための互換性のあるプロセスを提供した経験のある人はいますか?
php - SJCL を使用して Javascript で暗号化し、PHP で復号化する
Javascriptでいくつかのデータを暗号化したいのですが、それをphpサーバーに送信した後、復号化できます。
SJCL として JS 暗号化ライブラリを使用する予定です: http://crypto.stanford.edu/sjcl/。今までは、JS でデータを暗号化し、ajax post で送信できました。私のJSコードはこのように笑っています。
私の質問は、php でデータを復号化する方法です。可能であれば、サンプルコードでそれを行う方法を教えてください。(注:SSLは私にとってオプションではありません。現在、リクエストごとに生成された乱数としてキーを使用することを計画しています)
ありがとう
javascript - SJCLを使用してsha256ハッシュの16進表現を取得する
SJCLドキュメントは、sha256の例として次のコードを提供します。
その例のダイジェストは、16文字の16進文字列(256ビット= 16の16進文字)を期待していたときに、64文字の16進文字列に等しくなります。私は何が欠けていますか?ハッシュの16文字のダイジェストを取得するにはどうすればよいですか?
javascript - rubyでsjcl.jsを使用して作成されたAESの復号化
こんにちは。クライアント側に、暗号化されたデータと同じチャネルを介して転送されないキーがあると仮定しましょう。
私が達成しようとしているのは、RubyのStanford Javascript Crypto Library(sjcl)の結果を復号化することです。または、AESをサポートする暗号ライブラリを備えた他の言語での一般化。
これが私がjavascriptでやっていることです:
そして、これは私が見返りに得るものです:
だから私が実際に求めているのは、秘密のサーバー側を復号化するために必要なこれらのパラメーターのどれ(サーバーがすでに「stack-password」キーを持っていると仮定)、そしてどのライブラリを使用する必要があるかです。AES復号化ライブラリが十分ではない可能性がありますか?
javascript - AESまたはSHA256を使用したsjcl.encryptです
メッセージの暗号化/復号化にSJCL ライブラリを使用しています。私が持っている質問は、AES と SHA256 のどちらが使用されているかわからないということです
これが私のコードです:
次に、次のように暗号化/復号化できます
AES か SHA256 か何か?
javascript - Appcellerator Titanium プロジェクトで sjcl を使用できない
Titanium (ターゲット: iOS および Android) プロジェクトで sjcl (Stanford Javascript Crypto Library) を使用してテキストを暗号化しようとしています。私は他のオプションなしで、最も簡単な方法を使用しています:
アプリはこの行でハングするだけで、エラーや役立つ情報は得られません。私は何が欠けていますか?
ありがとう!