2016-04-07 10 views
1

bu php işleve bir coldfusion alternaitive var mı: openssl_verify: php işlevine bir Coldfusion alternatifi var openssl_verify()?

openssl_verify()

imza pub_key_id ilişkili kamu anahtarını kullanarak belirtilen veriler için doğru olduğunu doğrular. Bu , imzalama için kullanılan özel anahtara karşılık gelen ortak anahtar olmalıdır.

Her yere baktım ama hiç yok gibi görünüyor. Herhangi bir bilgi için şimdiden teşekkür ederiz?

+0

Yerel bir CF işlevi olduğunu sanmıyorum, ancak birileri http://cflib.org/ adresine bir udf gönderebilir. –

+0

Geri bildirim için alkış, Kontrol edeceğim. –

cevap

2

Yerleşik işlevler yok, AFAIK. Ancak, java, biraz java kodu ile uyarlayabileceğiniz signature verification'u destekler.

  1. 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"); 
    
  2. 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(); 
    
  3. doğrulamayı gerçekleştirmek için bir Signature nesne oluşturun:

    signatureBytes = binaryDecode(base64SignatureString, "base64"); 
    
  4. 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); 
    
  5. 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.

İlgili konular