㈠ php 乱码
是编辑器问题, 你打开文件的编码和文件的原编码不符, 建议你用word打开, 应该会提示找不到编码, 然后给你一个可以预览的选择框, 预览哪个能看见不是乱码的文字就用哪个编码打开就好了, 还有就是说, 有些php编辑器不支持很多编码, 比如editplus.
㈡ php的md5 出现乱码------有关discuz X2的密码加密方式。
$password = md5($password,$salt);
这个写错了,
$password = md5($password . $salt);
㈢ md5 加密 出乱码 求解
md5
函数的第二个参数是可选的~bool型的~
虽然你传的是字符串~那么第二个参数就是true啦~
那么~第二个参数是什么用呢。。
看解释。
string
md5
(
string
str
[,
bool
raw_output]
)
Calculates
the
MD5
hash
of
str
using
the
RSA
Data
Security,
Inc.
MD5
Message-Digest
Algorithm,
and
returns
that
hash.
The
hash
is
a
32-character
hexadecimal
number.
If
the
optional
raw_output
is
set
to
TRUE,
then
the
md5
digest
is
instead
returned
in
raw
binary
format
with
a
length
of
16.
简单翻译一下:
用RSA
Data
Security,
Inc.
MD5
Message-Digest算法计算一个字符串
str
的MD5哈希值并返回.
这个哈希值是一个32个字符的16进制数.
如果可选参数raw_output设置为
true
,则md5函数将改为返回一个未加工的,长度为16的二进制格式的摘要.
---------------
当你把第二个参数设置为false。或者不填。就不会有乱码了。
echo
md5("admin");
echo
md5("admin",false);
㈣ php源码打开全是乱码,是不是跟MD5加密码有关啊
这是zend进行编译的。跟md5无关。这个反编译比较难,网上也是可以找得到的,不过注释就没了!
md5加密的,无法进行解密,而且md5加密的全是32位字母和数字的组合,不是乱码。
至于上面说的MD5加密,一般是用在数据库的地方,如果在系统中,有需要密码的地方,你在数据库中找到相应字段,把字段的值修改为上面的值1739fddf100746ca,密码就是codepub.com
当然,有些人把密码直接放在文件中,一般是配置文件中,如config.php,你在文件中找到相应的参数,如password等,把后面的值替换,与数据库同理。
㈤ php验证码乱码
呵呵,这个程序没有问题
imagettftext($im,20,0,3,25,$font,"comic.ttf",$str);
这里需要一个comic.ttf字体文件,必须放在那个php程序同目录下
你是不是没有这个字体文件
如果没有,可以到系统的C:\Windows\Fonts目录下拷贝一个(拷个几百KB大小的就足够用了)
我试了你的程序,生成的图片效果不是很好,我以前写了一个,给你参考下把,虽然也是修改的网上的:
<?
//获取验证码图片模块
session_start();
//记得去掉下面注释
if (!isset($_GET["sid"])||$_GET["sid"]==""||$_GET["sid"]!=session_id())die();
Header("Content-type:image/png");
//定义header,声明图片文件,最好是png,无版权之扰;
//生成新的四位整数验证码
//session_id($_GET["sid"]);
//开启session;
$authnum_session = '';
$str = '';
//定义用来显示在图片上的数字和字母;
$l = strlen($str);
//得到字串的长度;
//循环随机抽取四位前面定义的字母和数字;
for ($i=1; $i<=4; $i++)
{
$num=rand(0,$l-1);
//每次随机抽取一位数字;从第一个字到该字串最大长度,
//减1是因为截取字符是从0开始起算;这样34字符任意都有可能排在其中;
$authnum_session.= $str[$num];
//将通过数字得来的字符连起来一共是四位;
}
$_SESSION["checkCode"]=$authnum_session;
//用session来做验证也不错;注册session,名称为authnum_session,
//其它页面只要包含了该图片
//即可以通过$_SESSION["checkCode"]来调用
//生成验证码图片,
//srand((double)microtime()*1000000);
mt_srand();
$im = imagecreate(100,40);//图片宽与高;
//主要用到黑白灰三种色;
$black = ImageColorAllocate($im, mt_rand(0,245),mt_rand(0,200),mt_rand(0,200));
$white = ImageColorAllocate($im, 255,255,255);
$gray = ImageColorAllocate($im, 200,200,200);
//将四位整数验证码绘入图片
imagefill($im,168,30,$gray);
//如不用干扰线,注释就行了;
$li = ImageColorAllocate($im, 220,220,220);
for ($i=0; $i<0; $i++)
{//加入3条干扰线;也可以不要;视情况而定,因为可能影响用户输入;
imageline($im,mt_rand(0,30),mt_rand(0,41),mt_rand(80,90),mt_rand(0,41),$li);
} //字符在图片的位置;
//imagestring($im, 5, 8, 2, $authnum_session, $white);
// Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));
// Name the font to be used (note the lack of the .ttf extension)
//$font = 'mvboli';
//$font = imageloadfont("mvboli.ttf");
//imagestring($im,$font, 8, 2, $authnum_session, $white);
//imagettftext ( $im,20.0, 0, 0, 30, $white,"FELIXTI.TTF", $authnum_session );
for ($i=0; $i<4; $i++)
{
imagettftext ( $im,20.0, mt_rand(0,40)-20, $i*25+3, 30, $white,"FELIXTI.TTF", substr($authnum_session,$i,1) );
}
for ($i=0; $i<90; $i++) //加入干扰象素
{
imagesetpixel($im, mt_rand()%100-2 , mt_rand()%40-2 , $gray);
}
ImagePNG($im);
ImageDestroy($im);
?>
同样这行代码需要一个字体文件,你可以把它改成你拷过来的的字体文件名
imagettftext ( $im,20.0, mt_rand(0,40)-20, $i*25+3, 30, $white,"FELIXTI.TTF", substr($authnum_session,$i,1) );
㈥ php 32位md5编码两次结果不一样!
首先你需要了解md5加密的字符串只要有一个位不同,结果就是不同的
PHP中对字符串的表示有两种形式
第一种是用单引号将字符串引起来,第二种是用双引号将字符串引起来
这两种方式表达的字符串是不同的,单引号引起来的字符串就是字符串本身,而双引号会对字符串中的转义符号进行转义
你可以试一下在PHP中输出下面的例子:
echo"x61x62x63";//输出abc
echo'x61x62x63';//直接输出x61x62x63,不对内容进行转义
传值过来的是计算字符串x...的值,是不经过转义的
第二个图中直接用md5("")计算,双引号的内容是需要经过转义的
如果图2中用$md51=md5('f8');就跟图1是一个结果了
㈦ burp中对md5解码后乱码,怎么解决
这个是工具的问题吧,用下这个网页链接;PS:没必要去解码MD5,这个加密本身就单向加密的,解密工具也只是用密码典预加载出来的匹配的,复杂一点的就解不出来了
㈧ PHP写的图形验证码乱码
我吧我的给你用吧
class wxhVerify {
static function imageVerify($length=4, $mode=1, $width=48, $height=22, $verifyName='verify') {
$randval = randomString($length, $mode);
$_SESSION[$verifyName] = md5($randval);
$width = ($length * 10 + 10) > $width ? $length * 10 + 10 : $width;
$im = @imagecreatetruecolor($width, $height);
$r = Array(225, 255, 255, 223);
$g = Array(225, 236, 237, 255);
$b = Array(225, 236, 166, 125);
$key = mt_rand(0, 3);
//随机背景色
$backColor = imagecolorallocate($im, $r[$key], $g[$key], $b[$key]);
//边框色
$borderColor = imagecolorallocate($im, 100, 100, 100);
//点颜色
$pointColor = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
@imagefilledrectangle($im, 0, 0, $width - 1, $height - 1, $backColor);
@imagerectangle($im, 0, 0, $width - 1, $height - 1, $borderColor);
$stringColor = imagecolorallocate($im, mt_rand(0, 200), mt_rand(0, 120), mt_rand(0, 120));
//干扰
for ($i = 0; $i < 10; $i++) {
$fontcolor = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
imagearc($im, mt_rand(-10, $width), mt_rand(-10, $height), mt_rand(30, 300), mt_rand(20, 200), 55, 44, $fontcolor);
}
for ($i = 0; $i < 25; $i++) {
$fontcolor = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $pointColor);
}
for ($i = 0; $i < $length; $i++) {
imagestring($im, 5, $i * 10 + 5, mt_rand(1, 8), $randval{$i}, $stringColor);
}
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
exit;
}
}
//生成随机字符串
function randomString($len=6, $type=1, $addChars='') {
switch ($type) {
case 0:
$chars = '' . $addChars;
break;
case 1:
$chars = str_repeat('0123456789', 3);
break;
case 2:
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' . $addChars;
break;
case 3:
$chars = 'abcdefghijklmnopqrstuvwxyz' . $addChars;
break;
default :
//默认去掉了容易混淆的字符oOLl和数字01,要增加请使用addChars参数
$chars = '' . $addChars;
break;
}
if ($len > 10) {
//位数过长重复字符串一定次数
$chars = $type == 1 ? str_repeat($chars, $len) : str_repeat($chars, 5);
}
$chars = str_shuffle($chars);
return substr($chars, 0, $len);
}
调用 wxhVerify::imageVerify();
㈨ php md5 密码怎么老是错误
很简单啊 说明提供的密码不对啊 这个MD5加密了的 又不提供给你真正的密码