Php 如何获取普通加密字符串

Php 如何获取普通加密字符串,php,encryption,Php,Encryption,我在输入中获得captcha加密值,如: value=" JFIF >CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality C $.' ",#(7),01444'9=82<.342 C2!!22222222222222222222222222222222222222222222222222 ( x"

我在输入中获得captcha加密值,如:

value="     JFIF         >CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default      quality
   C $.' ",#(7),01444'9=82<.342    C2!!22222222222222222222222222222222222222222222222222    ( x"           

   } !1AQa "q2   #B  R  $3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz                                                                            
   w !1AQ aq"2 B     #3R br 
$4 % &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz                                                                             ?   Ԓ 61N 7I v n     %   O;pHU   C8Xn   "  + 8   s c NNGw e ֱx4裴   Ԡ;+ uv i  Q ea @@     [ o H.       D!K7 6 ) CR nq   t3m  O R   g$  L  Ź `:ǘ s6   n| U PC   h M         7y F W     X    R RX8u  c \c )]  kw$ p _ w    > 5    ˩P ̪ 4h? .7n Th +mbn\ ,    ][Ķ|   I$pe "  
如何获得像“CDEF01jhdfz”这样的普通加密字符串而不是上面的字符串?我认为这是一个加密的问题。。这是我的密码:

    function str_encrypt( $str ) {
       $mystr = index_array( $str, KEY_VALUES );
       $mystr = mybase64_encode( rawurlencode( $mystr ) );
       return $mystr;
    }
    function str_decrypt( $str ) {
       $mystr = rawurldecode( mybase64_decode( $str ) ) ;
       $mystr = index_array( $mystr, KEY_VALUES );
       return $mystr;
    }  
    $captcha = new CaptchaCode();
    $code = str_encrypt( $captcha->generateCode(6) );
    $captcha1 = new CaptchaImages();
    $captcha1->GenerateImage( $width, $height, str_decrypt( $code ) );
    echo $code;

i m getting $code value through below function on my index.php:

    jQuery.get('<?php echo captcha_images.php ?>', function( encoded_code ) {
        jQuery('#security_check').val( encoded_code );
    }
函数str\u encrypt($str){
$mystr=索引数组($str,键值);
$mystr=mybase64_编码(rawurlencode($mystr));
返回$mystr;
}
函数str_decrypt($str){
$mystr=rawurldecode(mybase64_decode($str));
$mystr=索引数组($mystr,键值);
返回$mystr;
}  
$captcha=新的CaptchaCode();
$code=str_encrypt($captcha->generateCode(6));
$captcha1=新的CaptchaImages();
$captcha1->GenerateImage($width,$height,str_decrypt($code));
echo$代码;
我通过index.php上的以下函数获得$code值:
get(“”,函数(编码的\u代码){
jQuery(“#安全检查”).val(编码代码);
}

您不需要复杂的代码,我通常通过会话传递代码

php创建一个类似于19m92d9193jf9的代码。您可以使用md5()生成它,并使用substr()使其简短

使用此代码显示图像,然后在会话变量中设置此值

所以当前的php文件不需要更多的努力就可以得到这个值

image\u captcha.php

    $basepath = DIR_VIEWS.'/captcha/';

    $code = substr(md5(time()),0,7);

    $_SESSION['code_captcha'] = $code;

    $imageCaptcha = imagecreatefrompng($basepath."background.png");
    $fontCaptcha = imageloadfont($basepath."anonymous.gdf");

    $color = imagecolorallocate($imageCaptcha,rand(1,255),0,0);

    imagestring($imageCaptcha,$fontCaptcha,15,rand(3,10),$codigoCaptcha{0},$color);
    imagestring($imageCaptcha,$fontCaptcha,35,rand(3,10),$codigoCaptcha{1},$color);
    imagestring($imageCaptcha,$fontCaptcha,55,rand(3,10),$codigoCaptcha{2},$color);
    imagestring($imageCaptcha,$fontCaptcha,75,rand(3,10),$codigoCaptcha{3},$color);
    imagestring($imageCaptcha,$fontCaptcha,125,rand(3,10),$codigoCaptcha{4},$color);
    imagestring($imageCaptcha,$fontCaptcha,145,rand(3,10),$codigoCaptcha{5},$color);
    imagestring($imageCaptcha,$fontCaptcha,165,rand(3,10),$codigoCaptcha{6},$color);

    header("Content-type: image/png");

    imagepng($imageCaptcha);
    imagedestroy($imageCaptcha);
    exit();
访问此文件:

<img src="image_captcha.php"/> 


这里是验证码代码,可以检查了。

如果我理解了您的代码和注释,您有一个名为
captcha_images.php
的未公开脚本,它生成并发送一个原始JPEG图片。然后,您可以使用客户端JavaScript将其放入HTWML属性中

文本应为纯文本:

.val(值)

文本字符串或字符串数组,对应于要设置为选中/选中的每个匹配元素的值

…这很有道理,因为HTML本身根本不是二进制格式:

Content-Type: text/html
              ^^^^
这意味着以后不可能恢复原始二进制数据。将其转换为文本的过程将破坏它


我不知道«普通加密字符串»是什么意思,但您可能应该从准备使用的服务器发送它。

这不是“加密的”字符串,这是JPG数据。好吧,那我怎么才能得到加密数据呢?我在验证码中的图像显示得非常完美。更准确地说,这是一张HTML编码的JPEG图片。老实说,我认为一旦你将原始二进制数据转换为纯文本,你就无法找回它。你为什么需要它?我使用的所有验证码系统都使用字母数字代码来识别challenge,很显然,你也是。你是否遵循了作者提供的使用说明?在我的验证码图像中有字母数字代码,但在用户输入的文本与验证码代码进行比较时,我想要加密数据,现在我得到的数据如上图所示。我想要一个普通的加密字符串,而不是JPG数据。是这样吗你的真实代码?
应该会触发一个通知。奇怪的是,
echo$code;
打印图像…我必须在没有会话和Cookies的情况下执行此操作。你能告诉我如何通过会话每次使用php变量获取新值。下面是一些代码:会话_start();$_会话['code\u captcha']=$code;$code每次单击“刷新图像”时都会生成新的值,但我只能获取其值一次..如何重复获取其值
Content-Type: text/html
              ^^^^