admin 管理员组文章数量: 1086019
2024年4月25日发(作者:快速排序举例说明)
维普资讯
j盆}3lI信息网络翻用P P避行数据细留的投术探讨
文/殷诚
冶网络 擅9大量交易 簪 据。密码学可以通f
被盛 甥寸方口/解密的 实验,加密是 剔 将铹 ;
程。不易国掘矧啪嘶科乍番 码,易国 酣 耳码。数据 劝口/解
密豁霰 9算法,这些算舸 j 猫单,但当前的加蔷{算}去
企!Ild颤婀弹帛闻PHP咖哪 幢I技术
(1)crypt0函数
使用t ̄Windows平台经煳 寸cryp 相当自鸲 悉,这一
函数用来完成凌际怍单向加密的功能,它可以n口密—些明码,但不
能够将密母转换为原来的明码。尽管从表面 来 }—个没
有什么用处自锄能,但眩廿弼虢 嘲来保证豸溺播衙驺 因
为荆嘣拍勺口令_旦落人第 人的手里,由于不能利 为明
文,因此也没有什/厶大用处。在验证用户输入的口令时,用户的输入
就采用单 Ⅱ算法,如果输^与存 蚴嗡滔的口令相四配,贝啦乱人
的口令定是正确的。
PHP同日提供了懒cryp ̄嘧功自 旨
函 各式女吓:
string crypt(string niput_string[,stnng sal
其中的mpuLst血1g参数居需要加商仔 符串,salt是— 位
字串,它目蝴劬嘧 『暗码'j 排除 筒 悸 吐
性 缺省 虢下'PHP使辟卜个2个与 韵DES刊沣,如 系统使
用的是MD5算法,它会使爵—个12个字符的干扰串。可 丑执行
下面 赡 粥要使用的干扰 撇:
print”My system salt size is:”.CRYPT
SALT_LENGTH l
c珂 渡翔 它 韵镑斡芝采 salt参数
如下:
算法 Salt长度
CRYPT_STD—DES 2-character ̄eraul0
CRYPTl_EXT—DES 9一character
CRYPT__MD5 12-characterbeginningwith¥l¥
CRYPT
_
BLOWFISH 16-characterbeginningwith
用crypt净觏用户身份验证
日用PHP胜 匿 十—个目 『 访问, 屯}午 拘 提供
正确的用户名和口令的用户访问这一目录。把资料 鹤 据库
MySQL的—个 冲。下面首先 建这1、{基弱柞members的表:
mysql>CREATE TABLE members(
一
>username CHAR(14)NOT NULL,
-
>password CHAR(32)NOT NULL,
一
>PRIMARY KEY(ifsername)
一
>)。
用户名密码
clark keloD 1 C 3771KE
bruce ba 1 T7vnz9AWgk
peter paLUVRWsRLZ4U
这 幼嘧的口令 拍 上l黾kent,banner和parker ̄根
据口令的前I/ 谶峰旰扰串:
¥enteredPassword.
¥salt=substr(¥enteredPassword,0,2);
¥userPswd—crypt(¥enteredPassword,¥salt);
// serPswd然后就和用户名 ̄MySQL中
将 .用Apache的口令j l i丑酉 用户输^用户名和口
令,—个鲜为 黼关PHP的 漶是,它可以把Apache的口令
应答系统输入的用户名和口令识别为 HP—AUTH—USER和
HP—AUTHJ W,枸 淦证 中用 B奎二 E量。在使
用crypt褓护重要的饥静矧 时1在缺省 嗍的crypt)并不
是民主 的, 只冉明 别安全 蟊 轴 勒冲,如 鬻豌 的安
全 睛 ,就需要蝴MD5散歹峭
(2)MD5函觌牧 填晤
—
个混编函数可 肾—儆长赛的信皂变换为具有固定长
度被混 出,也被称作‘信息文 ’。这是十分有用的,因为
—
个固定长窝的字符串可以啊来检查文件的完整陆耙崮碹 半签
名以及用户身份验证。由于它适合于PHP,所以PHP内置的
mdS()}昆编函数将把—个町变长度的 刨专换为1 28位(32个字
的 。混编的—
信鼠得到原来的明码,因为混编后的结果与原来的明码内容没有
依赖关系。即便只改变—吟寺:{守串中的— 字符,也将使得MD5
混编算法计算出二个截然不同的结果。下面是使用md5o的实例
及其相应的结果;
<php
Snput:”HeUo,PHPworld! t
¥0utput=md5 npuOt
print”输出: ̄utput”;
?>
结 :7996b5e0804042fd531907a4900f190e
注意,结 毛度为32个字 把醢nput的崮 rL.下,再
使用md职幅 埠进 昆编;
<∞hp
 ̄nput=”HeUo,PHP W0rld
¥0utput:mdS( ̄npu0z
print”输出:¥output”l
?>
集团经济研究2007.1 0月下旬:FLJ(总第246期)
维普资讯
绿.hash2:f0456d48ed06a5c35ble42561fa7a016
bab5e
可 拔观,尽管二个结 拇 蔓者陧32个字符,但明文中_ 致
小的变化 胡 洼了很 q变化,可 刊 戋榭 数据
Decrypted strin ̄Applied Cryptography,by Bruce Schneier,
isawonderfulcryptographyreferenc ̄
上面的代码中二个最典型的函数是mcrypt_encrypt( 啊
crypt( f韵 易见的。 『‘ 嘧
尽管cry 翮rodS(洛有用处,但 f睹是 9睛蓄,二各在功
mcrypLde
Mcrypt提供了几 牛由嘲 方式,由于每科由啼 自可
能上部受到—定的限制。使用Mcrypt和Mhash, ̄PHP
码本 ,
用户在加密_方面的选择
企业离蛳5Il簖佣PHP扪 l缸0嘲獭术
(1)使用Mcrypt加密算法扩展库
PHP ̄
面的 懒
Mcrypt
:
Mcrypt 2.47是
中函数mcrypt_create_i ̄ I睦圭的初始化向量hence. 可以使
每条信 皮IIt独 尽
如 整黪 致=中没剞 }邋
(2)使用Mhash护馄库
Q&3版的Mhash ̄@12稍 南算 ,仔细I佥查Mhash
麒式 畴 錾 啵i :变量,但
'PHP就 罐黯信
vn&3 ̄ ̄mhash.h可 饫皑: 攻恃 鼢 触:
Blowf/sh RC2 Safer-sk64 xtea
Cast-256 RC4 Safer-sk128
DES RC4-iv Serpent
CRC32 HAVAL16OMD5
CRC32B HAVAL192RIPEMD160
G0STHAVAL224SHA1
HAVAI 1 28HAVAI 256TIGER
r阻p ^lJl 茴 IJf比 椰 ̄lYt1]:
Enigma R ̄ndael-128 Threeway
Gost Rijndael-192 TripleDES
L0KI97 Rijndael一256 Twofish
PanamaSaferplus Wake
<?php
Shash_alg=MHASH_TIGER ̄
Smessage=”These are the clirections to the secret fort.
Two steps left,three steps right,and cha chacha.”;
Mcrypt的优 又t 目 提侈 喏 驻较多,还在于它
可以张魄 断动Ⅱ/解密殳臼翌,tf_ ̄b,它还提供了35种处理数据用的
函魄
首先,介 敌 吁晓啊Mcrypt扩嗣 剡 珩方嘧,然唇再介
缴 佣它进 挥瓿
下面蝴
<?php
¥hashed—message=mhash(¥hash_alg,Smessage);
print’。The hashed message is”.bin2hex(¥hashed—message);
?>
Mcrypt
执葡羞{ 特黼 厂F面的渝出 辣:
The hashed message is O7a92a4db3a4177fl9ec9034ae540
0eb60dla9fbb4ade461
//Designate string to be encrypted
 ̄tfing=“Applied Cryptography,by Bruce Schneier,iS
a wonderful cryptography reference.”;
在这里使用bin2hex()函数的目的是方便我们理解
 ̄ashed_message雠拙,
需要注裁提,混编黾
塞 言宦、。这锦
为
Skey=“Four score and twenty years ago'’t//Encryp—
tion/decryption key
¥cipher_alg:MCRYPT—RIJNDAEL128;
力能,其结夥 蕊舞输入,臣 比可以 F显
拥于让用户
i*v=mcrypt_create_iv (mcryptget—iv—size(¥cipher alg,
MCRYPT_MODE
供 乏件,l 确
Mhash还有其他—些有用的函数。例如,我需要输出—个
Mhash ̄
< hp
ECB),MCRYPT__RAND);
print“Oriainal string:Sstring”;
ng:mcrypt
encrypt(
Sencrypted
stri
¥cipher_alg,Skey,
,由于Mhash 锕 算 ;字部
以MHASH一开头,因此,可以通过
 ̄hash_alg=MHASH—TIGER
盯l嘈计 }_任务:
tring,MCRYPT
MODE—CB C, vj;
—
print“Encrypted string:”.bin2hex(¥encrypted string). {
Sdecrypted—string=mcrypt—decrypt(¥cipher—alg,Skey,
¥encrypted—string,MCRYPTl_MODE—CBC,¥iv);
print“Decrypted string:¥decryptd—strin ;e
?
print”T s data has been hashed with the”.mhash_get
has
h_name(¥hashed_message).”hashing algorithm.”:
执行匕面的嘟卒爿 三-f喵珀勺输出:
得到的输出是:This data has been hashed with the TIGER
hashingalgorithm.
Original strin ̄Applied Cryptography,by Bruce Schneier,
isawonderfulcryptographyreferenc ̄
Encrypted string ̄O2a7c58blebd22a9523468694bO91e6041 1
cc4dea8652bb8072
34fa06bbfb20e71ecf525f29df58e28f3d9bf541f7ebcecf62b
关于PHP
和萄 憔输的数据在 缸 引 交全的!PHP是 糊艮
完妻 锯毪j立用,建 Apache-SSL或其他 铷黟绪 宿}
c89fde4d8e7bale6cc9ea24850478c1 1742f5cfa1d23fe22re8b卜
(f乍者单位:九江职业大
集团经济研究20o7・1 o月下旬刊(总第246期)
版权声明:本文标题:企业信息网络利用PHP进行数据加密的技术探讨 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1714034356a662470.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论