Shawn McKenzie wrote: > This is my first adventure with mcrypt and also the sqlite stuff. > > Via file upload I am getting a SQL dump file and running it as a query > to insert data into a sqlite db. This works great. > > Then I am trying to use an update query to encrypt fields in all rows by > using the sqlite_create_function to run my encryption function that uses > $_SESSION['key'] which is an md5 hash of a pass phrase): > > $db = sqlite_open("db"); > sqlite_create_function($db, 'enc', 'encrypt', 1); > > $sql = 'UPDATE mytable SET f1=enc(f1);' > .'UPDATE results SET f2=enc(f2);'; > > sqlite_query($db, $sql);
What are the data types of f1 and f2? Are you sure they are large enough to hold the result of enc()? If data is getting a little truncated, or not encryted/decrypted at the end... Some encryption functions require input data to be 'padded' to an even multiple of a certain length. EG, it must be an even multiple of 32-bytes to be encrypted/decrypted. Others, I think, pad the results with spaces for similar reasons. So, possibly, somewhere in all of this, you just need to tack on: length(x)%32 spaces to your text. Or maybe you need to be more careful about using trim() and similar functions in there. > > function encrypt($txt) > { > $key = $_SESSION['key']; > $txt = trim($txt); I don't think any of the encryption routines care about line feeds, though the functions you use to process in a shell script or even mysql_query() *might*... -- Like Music? http://l-i-e.com/artists.htm -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php