博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BlowFish加密算法在php的使用
阅读量:5978 次
发布时间:2019-06-20

本文共 2212 字,大约阅读时间需要 7 分钟。

 1 
<?
php
 2 
    
 3 
    
$cipher
 
=
 mcrypt_module_open(MCRYPT_BLOWFISH
,
 
''
,
 MCRYPT_MODE_CBC
,
 
''
);
 4 
        
 5 
    
//
 The block-size of the Blowfish algorithm is 64-bits, therefore our IV
 6 
    // is always 8 bytes:
 7 
    
$iv
 
=
  
'
12345678
'
;
 8 
    
 9 
    
$key256
 
=
 
'
1234567890123456ABCDEFGHIJKLMNOP
'
;
10 
    
$key128
 
=
 
'
1234567890123456
'
;
11 
    
12 
    
printf
(
"
iv: %s\n
"
,
bin2hex
(
$iv
));
13 
    
printf
(
"
key256: %s\n
"
,
bin2hex
(
$key256
));
14 
    
printf
(
"
key128: %s\n
"
,
bin2hex
(
$key128
));
15 
    
16 
    
$cleartext
 
=
 
'
The quick brown fox jumped over the lazy dog
'
;
17 
    
printf
(
"
clearText: %s\n\n
"
,
$cleartext
);
18 
        
19 
    
//
 Do 256-bit blowfish encryption:
20 
    // The strengh of the encryption is determined by the length of the key
21 
    // passed to mcrypt_generic_init
22 
    
if
 (mcrypt_generic_init(
$cipher
,
 
$key256
,
 
$iv
!=
 
-
1
)
23 
    {
24 
        
//
 PHP pads with NULL bytes if $cleartext is not a multiple of the block size..
25 
        
$cipherText
 
=
 mcrypt_generic(
$cipher
,
$cleartext
 );
26 
        mcrypt_generic_deinit(
$cipher
);
27 
        
28 
        
//
 Display the result in hex.
29 
        
printf
(
"
256-bit blowfish encrypted:\n%s\n\n
"
,
bin2hex
(
$cipherText
));
30 
    }
31 
    
32 
    
//
 128-bit blowfish encryption:
33 
    
if
 (mcrypt_generic_init(
$cipher
,
 
$key128
,
 
$iv
!=
 
-
1
)
34 
    {
35 
        
//
 PHP pads with NULL bytes if $cleartext is not a multiple of the block size..
36 
        
$cipherText
 
=
 mcrypt_generic(
$cipher
,
$cleartext
 );
37 
        mcrypt_generic_deinit(
$cipher
);
38 
        
39 
        
//
 Display the result in hex.
40 
        
printf
(
"
128-bit blowfish encrypted:\n%s\n\n
"
,
bin2hex
(
$cipherText
));
41 
    }
42 
    
43 
    
//
 -------
44 
    // Results
45 
    // -------
46 
    // You may use these as test vectors for testing your Blowfish implementations...
47 
    // 
48 
    // iv: 3132333435363738
49 
    // key256: 313233343536373839303132333435364142434445464748494a4b4c4d4e4f50
50 
    // key128: 31323334353637383930313233343536
51 
    // clearText: The quick brown fox jumped over the lazy dog
52 
    // 
53 
    // 256-bit blowfish encrypted:
54 
    // 276855ca6c0d60f7d9708210440c1072e05d078e733b34b4198d609dc2fcc2f0c30926cdef3b6d52baf6e345aa03f83e
55 
    // 
56 
    // 128-bit blowfish encrypted:
57 
    // d2b5abb73208aea3790621d028afcc74d8dd65fb9ea8e666444a72523f5ecca60df79a424e2c714fa6efbafcc40bdca0    
58 
    
59 
?>
60 
   

转载于:https://www.cnblogs.com/xiazh/archive/2011/07/31/2122908.html

你可能感兴趣的文章
通过jsp请求Servlet来操作HBASE
查看>>
Shell编程基础
查看>>
Shell之Sed常用用法
查看>>
Centos下基于Hadoop安装Spark(分布式)
查看>>
mysql开启binlog
查看>>
设置Eclipse编码方式
查看>>
分布式系统唯一ID生成方案汇总【转】
查看>>
并查集hdu1232
查看>>
Mysql 监视工具
查看>>
Linux Namespace系列(09):利用Namespace创建一个简单可用的容器
查看>>
博客搬家了
查看>>
Python中使用ElementTree解析xml
查看>>
linux的日志服务器关于屏蔽一些关键字的方法
查看>>
mysql多实例实例化数据库
查看>>
javascript 操作DOM元素样式
查看>>
HBase 笔记3
查看>>
【Linux】Linux 在线安装yum
查看>>
Atom 编辑器系列视频课程
查看>>
[原][osgearth]osgearthviewer读取earth文件,代码解析(earth文件读取的一帧)
查看>>
mybatis update返回值的意义
查看>>