Jump to content

mcrypt help


ToonMariner

Recommended Posts

hello,

 

I am sure I had doen this before but I have hit a liit snag...

 

I have to pass the encrypted string one one page to the next - either in a session or a hidden field. The probelm being the special characters in the string.

 

I have used a regular expression to replace line feeds etc... like so.

 

<?php
	$this->find		=	array	(
								"/\\r/"	,
								"/\\n/"	,
								"/\\t/"
								);
	$this->replace	=	array	(
								'linefeedchar'	,
								'newlinechar'	,
								'tabchar'
								);
	$this->rfind	=	array	(
								"\r"	,
								"\n"	,
								"\t"
								);
	$this->rreplace	=	array	(
								'/linefeedchar/'	,
								'/newlinechar/'		,
								'/tabchar/'
								);

	// encrypting.
	$encrypted	=	mcrypt_generic($this->td, $str);
	return preg_replace($this->find, $this->replace,htmlentities($encrypted));

	// decrypting
	$str		=	 html_entity_decode(preg_replace($this->rreplace, $this->rfind,$str));
	return mdecrypt_generic($this->td, $str);

?>		

 

obviously this is all in class methods - that is not the problem.

 

The problem lies with the characters of the encryption and converting them to ones that can be passed via post/session/url and then converted backonce more.

 

If you can spot where I am going wrong please put me right.

 

any thanks....

Link to comment
Share on other sites

Thansk for the response obsidian.

 

just tried it a couple of ways with and with the htmlentities and html_entity_decode but to no avail.

 

there are still some [pre][/pre] chars in the string that I can't get to identify and the decrypion is failing miserably....

Link to comment
Share on other sites

I have a dumb question... are you initializing using mcrypt_generic_init() first? I figure you probably are, and it's just not showing in the code. Also, you don't have any trailing spaces or anything, do you?

 

One final thought: is the charset of the retrieving page the same as that on the sending page? If you encrypt one charset and decrypt it using another, you may well come up with some unrecognizable characters.

 

You've probably already covered all these, but I figured I'd better check them anyway.

Link to comment
Share on other sites

mcrypt_generic_init() - yes...

 

trailing spaces??? no the string is trimed before going to the encrypter...

 

charset is teh same on bothe pages

 

<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" />

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.