このPHP関数へのColdFusion alternaitiveあり:openssl_verify:php関数openssl_verify()の代わりにColdfusionがありますか?
openssl_verify()
署名がpub_key_idに関連付けられた公開鍵を用いて 指定されたデータのために正しいことを検証します。この は、 署名に使用される秘密鍵に対応する公開鍵である必要があります。
私は見てきましたが、何もないようです。事前情報ありがとうございます。
このPHP関数へのColdFusion alternaitiveあり:openssl_verify:php関数openssl_verify()の代わりにColdfusionがありますか?
openssl_verify()
署名がpub_key_idに関連付けられた公開鍵を用いて 指定されたデータのために正しいことを検証します。この は、 署名に使用される秘密鍵に対応する公開鍵である必要があります。
私は見てきましたが、何もないようです。事前情報ありがとうございます。
AFAIKの組み込み関数はありません。しかし、javaはsignature verificationをサポートしています。これは、Javaコードの一部で対応できます。
検証するデータをバイナリに変換します。正確な手順あなたが確認しているかに依存しますが、それは物理的なファイルであると言う:バイナリに署名値をデコードし
dataBytes = fileReadBinary("c:\path\someFile.zip");
。ここでも、「方法」は署名形式に依存します。それはbase64でエンコードされた文字列である場合:
signatureBytes = binaryDecode(base64SignatureString, "base64");
キーストア(またはファイルから)から証明書をロードし、公開鍵を抽出します。
// Example: "C:\ColdFusion\jre\lib\security\cacerts"
fis = createObject("java", "java.io.FileInputStream").init(pathToKeyStore);
keyStore = createObject("java", "java.security.KeyStore").getInstance("JKS");
// Default keystore password is "changeit" (do not keep the default. change it)
keyStore.load(fis, keyStorePassword.toCharArray());
publicKey = keyStore.getCertificate("yourCertAlias").getPublicKey();
検証を実行するためにSignatureオブジェクトを作成します。 。
sign = createObject("java", "java.security.Signature").getInstance("SHA1withRSA");
sign.initVerify(publicKey);
sign.update(dataBytes);
最後に、署名に供給し、そのステータスを確認:
isVerified = sign.verify(signatureBytes);
writeDump(isVerified);
適切なアルゴリズム(すなわちSHA1withRSA、等々)、公開鍵及び検証するためのデータでそれを初期化します詳細については、Lesson: Generating and Verifying SignaturesおよびWeaknesses and Alternativesを参照してください。
OpenSSL CLIとともにcfexecuteを使用してみることができます。 https://www.openssl.org/docs/manmaster/apps/verify.html
ネイティブCF機能はありませんが、誰かがhttp://cflib.org/にudfを提出している可能性があります。 –
フィードバックに感謝します、私はそれをチェックアウトします。 –