Chilkat HOME ASP Visual Basic VB.NET C# C C++ MFC Delphi FoxPro Java Perl Python Ruby SQL Server VBScript
Generate RSA Key and Sign a StringDemonstrates how to generate a new RSA public/private key pair and use it to generate a signature for a string. The (binary) digital signature is returned as a hexidecimalized string.
<?php $rsa = new COM("Chilkat.Rsa"); // Any string argument automatically begins the 30-day trial. $success = $rsa->UnlockComponent('30-day trial'); if ($success != true) { print 'RSA component unlock failed' . "\n"; exit; } // Generate a 1024-bit RSA key pair. $rsa->GenerateKey(1024); // This example will sign a string, and receive the signature // in a hex-encoded string. Therefore, set the encoding mode // to "hex": $rsa->EncodingMode = 'hex'; // If some other non-Chilkat application or web service is going to be verifying // the signature, it is important to match the byte-ordering. // The LittleEndian property may be set to 1 // for little-endian byte ordering, // or 0 for big-endian byte ordering. // Microsoft apps typically use little-endian, while // OpenSSL and other services (such as Amazon CloudFront) // use big-endian. $rsa->LittleEndian = false; $strData = 'This is the string to be signed.'; // Sign the string using the md5 hash algorithm. // Other valid choices are "md2", "sha256", "sha384", // "sha512", and "sha-1". $hexSig = $rsa->signStringENC($strData,'md5'); print $hexSig . "\n"; print $rsa->lastErrorText() . "\n"; // Now verify the signature: $success = $rsa->VerifyStringENC($strData,'md5',$hexSig); if ($success == true) { print 'Signature verified!' . "\n"; } else { print $rsa->lastErrorText() . "\n"; } // Try it with an invalid signature: $success = $rsa->VerifyStringENC($strData,'md5','not a valid sig'); if ($success == true) { print 'Signature verified!' . "\n"; } else { print $rsa->lastErrorText() . "\n"; } // Try it with invalid data: $success = $rsa->VerifyStringENC('Not the original data','md5',$hexSig); if ($success == true) { print 'Signature verified!' . "\n"; } else { print $rsa->lastErrorText() . "\n"; } // Try it with the wrong hash algorithm: $success = $rsa->VerifyStringENC($strData,'sha-1',$hexSig); if ($success == true) { print 'Signature verified!' . "\n"; } else { print $rsa->lastErrorText() . "\n"; } ?> |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.