Yerleşik işlevler yok, AFAIK. Ancak, java, biraz java kodu ile uyarlayabileceğiniz signature verification'u destekler.
Doğrulamak istediğiniz verileri ikili olarak dönüştürün. kesin adımlar Doğrulamakta ne bağlıdır, ancak fiziksel bir dosyadır ki: ikili içine
dataBytes = fileReadBinary("c:\path\someFile.zip");
Decode imza değer. Yine, "nasıl" imza biçimine bağlıdır. o base64 şifreli dize ise:
// 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();
doğrulamayı gerçekleştirmek için bir Signature nesne oluşturun:
signatureBytes = binaryDecode(base64SignatureString, "base64");
Yük sizin anahtar deposundan sertifika (veya bir dosyadan) ve kamu anahtarı ayıklamak . imza
sign = createObject("java", "java.security.Signature").getInstance("SHA1withRSA");
sign.initVerify(publicKey);
sign.update(dataBytes);
- Son olarak
, besleme ve durumunu doğrulamak: kontrol etmek için uygun bir algoritma (yani SHA1withRSA, vs.), genel anahtar ve verilerle başlatma
isVerified = sign.verify(signatureBytes);
writeDump(isVerified);
Daha fazla ayrıntı için bkz. Lesson: Generating and Verifying Signatures ve Weaknesses and Alternatives.
Yerel bir CF işlevi olduğunu sanmıyorum, ancak birileri http://cflib.org/ adresine bir udf gönderebilir. –
Geri bildirim için alkış, Kontrol edeceğim. –