It perterbs * the CIPHER due to its pseudo-random nature and B> because * unlike the plaintext, its length is known. * * The key is also run through the HASH, since keys chosen by * humans typically are not very good, usually consisting * only of about 96 out of 256 values and generally being * too short. * * A random initial vector is chosen to be later prepended to * the ciphertext. * * The hash and plaintext are then run through the selected * CIPHER with the HASHed key and iv. mcrypt routines sometimes append * garbage to the ciphertext, which would not have been run through * the hash. So both the encoder carefully trims the ciphertext * to be the same length as the plaintext (the decoder must also do * the opposite). * * Finally, the ciphertext and the initial vector are run through * base64_encode() in order to make the mess printable. Note * that in order to be mailable or printable, the encoded output * should be run through chunk_split(), and to be passed to a * HTTP server it should be run through rawurlencode(). * */ /* * Take in arbitrary plaintext and make an encrypted message. * The output is base64 encoded. */ function WEB_encrypt($pt) { $realkey = hash(HASH, KEY, true); // raw binary key $iv = openssl_random_pseudo_bytes(16); // 16 bytes for AES-256-CBC $blob = openssl_encrypt( hash(HASH, $pt, true) . $pt, // hash + plaintext CIPHER, $realkey, OPENSSL_RAW_DATA, $iv ); return base64_encode($iv . $blob); } /* function WEB_encrypt($pt) { $realkey = mhash(HASH,KEY); $td = mcrypt_module_open(CIPHER, "", MCRYPT_MODE_OFB, ""); $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_URANDOM); mcrypt_generic_init($td, $realkey, $iv); $blob = mcrypt_generic($td, mhash(HASH,$pt). $pt); //mcrypt_generic_end($td); return base64_encode($iv. $blob); } */ /* * Decrypt previously encrypted plaintext message. Input is * expected to be base64 encoded, output is arbitrary string * or FALSE if decode failed. */ function WEB_decrypt($blob) { $realkey = hash(HASH, KEY, true); $rawblob = base64_decode($blob); if (strlen($rawblob) < 16) { return FALSE; } $iv = substr($rawblob, 0, 16); $ct = substr($rawblob, 16); $unblob = openssl_decrypt( $ct, CIPHER, $realkey, OPENSSL_RAW_DATA, $iv ); if ($unblob === false) { return FALSE; } $check = substr($unblob, 0, 32); // SHA-256 hash is 32 bytes $pt = substr($unblob, 32); if ($check !== hash(HASH, $pt, true)) { return FALSE; } return $pt; } /* function WEB_decrypt($blob) { $realkey=mhash(HASH,KEY); $rawblob=base64_decode($blob); // binary blob $td = mcrypt_module_open(CIPHER, "", MCRYPT_MODE_OFB, ""); $iv=substr($rawblob,0,mcrypt_enc_get_iv_size($td)); // IV if (strlen($iv) Celebrity Biorhythm Calculator

Inter-Galactic Mega Productions

Proudly presents

The Celebrity Biorhythm Calculator

Instructions

This page will generate biorhythm charts for two people and compare the phase relationship of the rhythms as a compatibility index. You can also put in a single birthday to just get a chart for one person. A database of famous people throughout history is available to supply one or both of the birth dates for comparison. Alternatively, you may supply one or both of the dates for comparison yourself.

Here you can find a more complete explanation of what biorhythms are.

If you would like to see a particular celebrity added, why not drop us a line?

If you'd like to become a registered user, Click here
Registered users, please log in
Username:
Password:
If you are a register user and have forgotten your password, Click here

Person #1Person #2
Choose a celebrity
Enter your own values
 

Name: 
Birthdate: 

Choose a celebrity
Enter your own values
No 2nd person -- single person graph only

If you're not sure in which category a particular celebrity is listed, you can search for them by putting a few letters from their name below.

Please visit our sponsors

Valid HTML 4.01!

This site is strictly for entertainment purposes only.

© 2001 Inter-Galactic Mega Productions

We are not spammers

View our privacy policy