存档

作者存档

收集:php-mcrypt加密模块的用法

2010年12月7日 无风的飘逸 1 条评论

PHP程序员们在编写代码程序时,除了要保证代码的高性能之外,还有一点是非常重要的,那就是程序的安全性保障。PHP除了自带的几种加密函数外,还有功能更全面的PHP加密扩展库McryptMhash

其中,Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。PHP加密扩展库Mcrypt的算法和加密模式

Mcrypt库支持20多种加密算法和8种加密模式,具体可以通过函数mcrypt_list_algorithms()和mcrypt_list_modes()来显示,结果如下:

Mcrypt 支持的算法有:cast-128 gost rijndael-128 twofish arcfour cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes

Mcrypt支持的加密模式有:cbc cfb ctr ecb ncfb nofb ofb stream

这些算法和模式在应用中要以常量来表示,写的时候加上前缀MCRYPT_和MCRYPT_来表示,如下面Mcrypt应用的例子:

DES算法表示为MCRYPT_DES;
ECB模式表示为MCRYPT_MODE_ECB;

PHP加密扩展库Mcrypt应用

先看一个例子,了解Mcrypt的工作流程,再来看看部分流程使用的函数:

  1. <?php
  2. $str = "我的名字是?一般人我不告诉他!";
  3. //加密内容
  4. $key = "key:111";
  5. //密钥
  6. $cipher = MCRYPT_DES;
  7. //密码类型
  8. $modes = MCRYPT_MODE_ECB;
  9. //密码模式
  10. $iv = mcrypt_create_iv(mcrypt_get_iv_size ($cipher,$modes),MCRYPT_RAND);//初始化向量
  11. echo "加密明文:".$str."<p>";
  12. $str_encrypt = mcrypt_encrypt($cipher, $key,$str,$modes,$iv);
  13. //加密函数
  14. echo "加密密文:".$str_encrypt." <p>";
  15. $str_decrypt = mcrypt_decrypt($cipher, $key,$str_encrypt,$modes,$iv);
  16. //解密函数
  17. echo "还原:".$str_decrypt;
  18. ?>

运行结果:

加密明文:我的名字是?一般人我不告诉他!
加密密文: 锍盌?]鸴?q攦軄L 笑 郺葄"簻 黙
还原:我的名字是?一般人我不告诉他!

<1> 由例子中可看到,使用PHP加密扩展库Mcrypt对数据加密和解密之前,首先创建了一个初始化向量,简称为iv。由 $iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher,$modes),MCRYPT_RAND);可见创建初始化 向 量需要两个参数:size指定了iv的大小;source为iv的源,其中值MCRYPT_RAND为系统随机数。

<2>函数mcrypt_get_iv_size($cipher,$modes)返回初始化向量大小,参数cipher和mode分别指算法和加 密模式。

<3> 加密函数$str_encrypt = mcrypt_encrypt($cipher,$key,$str,$modes,$iv); 该函数的5个参数分 别如下:cipher——加密算法、key——密钥、data(str)——需要加密的数据、mode——算法模式、 iv——初始化向量

<4>解密函数 mcrypt_decrypt($cipher,$key,$str_encrypt,$modes,$iv); 该函数和加密函数的参数几乎 一样,唯一不同的是data,也就是说data为需要解密的数据$str_encrypt,而不是原始数据$str。

注:加密和解密函数中的参数cipher、key和mode必须一一对应,否则数据不能被还原。

安装
此安装主要针对Linux系统

首先要下载三个软件,分别是

libmcrypt-2.5.8.tar.gz

下载地址:http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91774&release_id=487459

mhash-0.9.9.tar.gz

下载地址:http://sourceforge.net/project/showfiles.php?group_id=4286&package_id=4300&release_id=645636

mcrypt-2.6.8.tar.gz

下载地址:http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91948&release_id=642101

【几篇文章和在一起的,下面特别重视libmcrypt,但是我发现安装mcrypt时候需要解决对libmcrypt还有mhash的依赖,这些好解决,不行yum一下就可以了】

# tar -xvf libmcrypt-X.X.X.tar
# cd libmcrypt-X.X.X
# ./configure

现在你应该已经把libmcrypt作为一个共享组件了(但不是一个PHP的共享组件)。运行命令:

# ldconfig

它将使得共享对象可以在C/C++开发中被使用。下面把mcrypt动态组件编译到PHP中。首先,你需要PHP-devel 包中包含的 'phpize‘ 命令。

当你当前运行的PHP中已经有了 PHP-devel 后,输入:

# cd ext/mcrypt
# phpize
# aclocal
# ./configure
# make clean
# make
# make install

现在php的安装目录下面应该有了mcrypt.so 的文件,在 /etc/php.ini 添加:

extension=mcrypt.so

然后重启一下apache,这样我们就已经将mcrypt功能安装成功了。

特别注意:

1、phpize需在解压后的源码包下执行,执行后生成configure脚本

2、运行./configure时,如果提示

configure: error: Cannot find php-config. Please use --with-php-config=PATH
请使用:

./configure --with-php-config=/php-install-path/bin/php-config #而不是使用php.ini

Share
分类: PHP 标签: ,

解决phpmyadmin报错误Wrong permissions on configuration file

2010年12月6日 无风的飘逸 没有评论

phpmyadmin报告错误:

Wrong permissions on configuration file, should not be world writable!

这个是因为phpmyadmin基于安全性考虑,不允许配置文件为任意可写状态(777)。

在shell下执行

$chmod 755 -R phpmyadmin

其中phpmyadmin为phpmyadmin所在文件夹

Share
分类: PHP 标签:

IPS对交易按网站分类的公式

2010年12月2日 无风的飘逸 没有评论

随便写了一个,因为以后也有用,就把它记起来

假设商户自定义字段为:N

那么在O列写入以下公式,可以提取出单网站的域名,如果网站为https://类型的SSL网站,则域名前面会多一个/,无关紧要的,呵呵

=LEFT(RIGHT(N2,LEN(N2)-FIND("http://",N2)-6),FIND(" ",RIGHT(N2,LEN(N2)-FIND("http://",N2)-6)))

Share
分类: Windows 实战 标签: ,

最简单的webmin安装教程

2010年11月29日 无风的飘逸 3 条评论

问题:

如何安装webmin

webmin安装教程

最简单的webmin安装方法。

费话不多,开始解题:

yum install -y mlocate
yum install -y openssl
wget http://software.virtualmin.com/gpl/scripts/install.sh
sh install.sh
yum install -y php-dom

完毕~!

哦耶,怎么会这么短? 真的就这么短,和日本人一样短的,哈哈!

不要瞎想了,安装去吧,:)

Share

如何申请虚拟信用卡呢?

2010年11月29日 无风的飘逸 2 条评论

godaddy.com 推出0.99$优惠码购买国际域名的服务,但是要使用信用卡才能购买。国内,我了解到的身边的很多朋友是自由职业者,这中间 有很大一部分同仁没有信用卡,呵呵,这个不代表你没经济实力,政策问题(不多阐述这个了).
我们可以使用虚拟信用卡,目前国内很多人出售虚拟 信用卡,那价格纯粹就欺负国人而已,1:10不止.
大家可以用工行网上银行申请国际E卡(国际虚拟VISA信用卡),这个是第一步(申请E卡无需提供资料的,只要你开户的时候是用居民身份证即可在网银申请 到,限额应该是 在$250-300.
但是这个国际E卡据我曾经使用过的经验,是不能在GD购买交易的(会提示未授权).
然后我们到https://www.entropay.com/(欧贝通)去申请一个 账户,注册那里会根据IP实现自动中文,请记得这里一定要用真实资料申请,不然可以会出现充值不了,并请保存好注册资料,然后会要求填写充值卡绑定,我们 就用在工行申请的国际E卡(国际虚拟VISA信用卡)来绑定(这个很安全的,可以按需购买,不担心账户安全问题了).

然后会要求邮件验证,邮件里面会有验证码,输入验证码后登录,就会发现已经产生一张国际虚拟VISA信用卡了.
充值很简单的,直接 用工行国际E卡小额购汇,记得购汇的时候要选钞户即可,然后在欧贝通输入充值金额即可.
欧贝通国际虚拟VISA信用卡是可以进行任何一家支付 机构支付的,不担心出现工行国际E卡出现未授权的状况了.
大功告成了,呵呵,这样完全解决了信用卡国际购买活动域名的问题了(GD今天 0.99的转入和注册让不少人心动了吧).
我今天测试了7小时成功了.
注意事项:与国内的网上银行服务不同,通过这种方法进行支 付,资金到账后并不会立即从原有的账户转出.比如向 欧贝通账户进行充值以后,立即检查自己的中国工商银行国际 e 卡账户,会发现其中美元账户上的余额并没有减少.这时不要企图利用这段时间将国际 e 卡上的金额转回到借记卡上,否则可能会引起包括欧贝通账户在内的大量帐户被封.另外,出于平安考虑,欧贝通 账户会被暂时冻结,每次充值后会临时冻结几天到一个星期不等,这段时间无法继续充值,也可能无法对外支付,这时需要等待一段时间,当 Entropai 与中国工商银行之间的交易完成后,账户就可以解冻.

需要缴纳多少交易和维护费用?

按照教程所提供的方法,首先需要申请一个中国工商银行双币种银联借记卡账户,这个账户每年的维持费用是10元人民币,其中人民币账户最低存款额是 10元; 美元分为“钞”、“汇”两个账户,教程需要使用的是“钞”账户,其中的最低存款额是0.01美元;由于需要开通网上银行,所以要购买一个被称作“U盾”的 硬件加密证书,价格在60-80元人民币之间;然后还需要申请一张国际e卡,里面分为人民币和美元两个账户,教程需要使用的是“美元”账户,这个账户的最 低存款额是0.01美元;最后需要申请一个Entropay账户,向这个账户充值的时候需要缴纳相当于充值额度大约5%的同币种银行存款作为手续费。

说实话,我看不懂,先存着呗

Share

人生就是一种积累

2010年11月29日 无风的飘逸 1 条评论

不知道从什么时候开始,我也喜欢上了概念这个东西。

今天的概念就是——积累。

人生就是一种积累,你积累了什么,你就会得到什么。

你们同意吗?

Share
分类: 邹清水 标签:

画了张图,拿去给小学的美术老师看能否再给我个零分

2010年11月29日 无风的飘逸 2 条评论

想---------->做---------->成功
|
↑-----改进---

Share
分类: 邹清水 标签:

使用squid做web镜像完全策略_web反向代理

2010年11月27日 无风的飘逸 没有评论

应用环境:一台智能DNS,一台web做原始服务器,三台squid做web镜像,三台squid分别在重庆,上海,天津,web 在深圳,智能dns能分析客户访问接入的IP然后叫其访问本城市的服务器,比如说上海的客户访问的就是上海的web镜像,然后第二次访问的时候首先是向其 他两台squid发起请求看有没有这个缓存,如果没有在向web发起请求

系统环境:CentOS 5.2,squid-3.1.0.13.tar.gz,其中web服务器是LAMP环境,域名为www.qubaoquan.com

IP 和域名规划:智能DNS的ip为192.168.10.100,web服务器的IP为192.168.10.1,上海squid的IP 为:192.168.10.2,重庆squid的IP为:192.168.10.3,天津squid的IP为:192.168.10.4,对外提供的域名 为www.qubaoquan.com

如下的的配置是上海的squid的配置,其他两台squid只要做些响应更改就可以了

1. 安装

[root@squid srv]# tar zvxf squid-3.1.0.13.tar.gz

[root@squid srv]# cd squid-3.1.0.13

[root@squid srv]# ./configure --prefix=/usr/local/squid --enable-storrio=ufs,aufs,null --enable-linux-netfilter

[root@squid srv]# make

[root@squid srv]# make install

2. 创建运行squid的用户

[root@squid srv]# useradd squid

3. 创建运行所需的目录并且赋权

[root@squid srv]# mkdir -p /usr/local/squid/cache

[root@squid srv]# chown -R squid:squid /usr/local/squid/cache/

[root@squid srv]# mkdir -p /var/run/squid/

[root@squid srv]# chown -R squid:squid /var/run/squid/

[root@squid srv]# mkdir -p /var/log/squid

[root@squid srv]# chown -R squid:squid /var/log/squid

4. 编辑主配置文件

[root@squid srv]# cd /usr/local/squid/etc/

[root@squid etc]# mv squid.conf squid.conf.bak

[root@squid etc]# vi squid.conf(内容如下)

############# basic setting ###############

visible_hostname 192.168.10.2

pid_filename /var/run/squid/squid.pid

dns_nameservers 192.168.10.100

############# log config ###############

cache_access_log /var/log/squid/access.log

cache_log /var/log/squid/cache.log

cache_store_log none

#========&gt; log format <===============

logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st"%{Referer}>h" "%{User-Agent}&gt;h" %Ss:%Sh

#====================#

logfile_rotate 24

emulate_httpd_log on //使日志和Apache的格式相似

debug_options ALL,2 //debuge级别

############# acl setting ###############

acl all src 0.0.0.0/0.0.0.0

http_access allow all

############ timeout setting ############

connect_timeout 1 minute

peer_connect_timeout 30 seconds

request_timeout 2 minutes

persistent_request_timeout 1 minute

############# admin setting #############

cache_mgr quxinrao@163.com

############# cache setting #############

cache_dir ufs /usr/local/squid/cache 4096 16 256

cache_mem 125 MB

cache_swap_low 90

cache_swap_high 95

maximum_object_size 32768k

minimum_object_size 2k

maximum_object_size_in_memory 256 KB

cache_replacement_policy lru

memory_replacement_policy lru

cache_effective_user squid

cache_effective_group squid

#=========&gt; dns reslove cache <========

ipcache_size 1024

ipcache_low 90

ipcache_high 95

fqdncache_size 1024

#==========> no cached <==========

hierarchy_stoplist cgi-bin ?

hierarchy_stoplist -i ^https:\\ ?

acl QUERY urlpath_regex -i cgi-bin \? \.asp \.php \.jsp \.cgi

acl denyssl urlpath_regex -i ^https:\\

no_cache deny QUERY

no_cache deny denyssl

#==========> Expires setting <=============

refresh_pattern -i \.gif$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.jpg$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.png$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.bmp$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.jpeg$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.mp3$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.wmv$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.rm$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.swf$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.mpeg$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.wma$ 1440 50% 2880 ignore-reload

refresh_pattern -i \.css$ 10 50% 60 reload-into-ims

refresh_pattern -i \.js$ 10 50% 60 reload-into-ims

refresh_pattern -i \.xml$ 10 50% 30 reload-into-ims

############# porxy setting #############

http_port 80 accel vhost vport

icp_port 3130

cache_peer 192.168.10.1 parent 80 3310 no-query round-robin max-conn=32 originserver name=qubaoquan

cache_peer_domain qubaoquan www.qubaoquan.com

#==========> forword cyclic <=============

#acl fromneighbor src 192.168.168.5

#cache_peer_access 192.168.168.5 deny fromneighbor

#==========> neighbor setting <=============

cache_peer 192.168.10.3 sibling 80 3310

cache_peer 192.168.10.4 sibling 80 3310

#==========> ICP contorl &lt;=============

acl N1 src 192.168.10.3

acl N2 src 192.168.10.4

acl ALL src 0.0.0.0/0.0.0.0

icp_access allow N1

icp_access allow N2

icp_access deny ALL

############# old version setting ###########

#httpd_accel_single_host off

#httpd_accel_host 221.122.76.96

#httpd_accel_port 80

#httpd_accel_with_proxy on

#httpd_accel_user_host_header on

############### other setting ##########

forwarded_for off

coredump_dir /usr/local/squid/var/cache

quick_abort_min 16 KB

quick_abort_max 16 KB

quick_abort_pct 95

error_directory /usr/local/squid/share/errors/en-us/

5. 创建启动脚本并且注册为系统服务

[root@squid ~]# vi /etc/init.d/squid(内容如下)

#!/bin/bash

# chkconfig: - 90 25

# description: Squid

case "$1" in

start)

if [ -f /var/run/squid/squid.pid ]

then

echo " the squid serve is running now,please stop it fisrt!"

else

/usr/local/squid/sbin/squid -s

fi

;;

stop)

rm -rf /var/run/squid/squid.pid

killall -9 squid

;;

status)

if [ -f /var/run/squid/squid.pid ]

then

echo " the squid serve is running now"

else

echo " the squid serve not running now"

fi

;;

restart)

# rm -rf /var/run/squid/squid.pid

#killall -9 squid

#/usr/local/squid/sbin/squid -s

e a

echo b

echo c

;;

Esac

[root@squid ~]# chmod +x /etc/init.d/squid

[root@squid ~]# chkconfig --add squid

[root@squid ~]# chkconfig --levels 2345 squid on

6. 启动服务

[root@squid ~]# service squid start

7. 测试:在一台测试机上把域名www.qubaoquan.com绑定到192.168.10.2上,然后再浏览器访问:www.qubaoquan.com就会出现192.168.10.1上面的web页面

8. 查看缓存命中率的方法:[root@squid ~]# /usr/local/squid/bin/squidclient -p 80 mgr:info

Share
分类: Linux 技术 标签: , , ,

广告联盟列表,哦耶。太牛逼了点吧

2010年11月27日 无风的飘逸 没有评论

国外类:

CJ:cps,cpl,cpa类,国外顶级联 盟,多次收款,支票满100$支付,月付

CB:CPS 类,国外顶级数字产品销售联盟,支票,周付

Pay Dot Com:CPS类,和CB相似。

Linkshare:cps,cpl,cpa 类,国外顶级联盟

Shareasale:国外顶级销售联盟

亚洲交友:cps,cpa类交友联盟,信誉不错,半月支票,ep卡支付,注意推广要求

CPC点击计费类:

Google Adsense: CPC类,多次收款,最低100美元支付,支票,西联汇款

BidVertiser:CPC(收款过),最低10美元paypal支付,支票最低50美元支付

Adbirte: CPC(收款过),最低100美元支票支付

Clicksor:CPC 类,信誉不错限制也多,最低50美元支付,支票,paypal支付

国外保健类产品联盟:

MarketHealth:CPS, 国外保健品销售,最低20美元paypal,支票支付

sellhealth:CPS,国外保健品销售,支持Check, Wire, FedEx and MoneyBookers支付

Worldniche:CPS,国外保健品销售,最低100美元paypal,支票支付

Moreniche: CPS,国外保健品销售,最低100美元支票支付

Cashburners: CPS,国外保健品销售, wire ($1000 minimum) or Epassporte ($200 minimum)

博客出售连接赚钱类:

Text link ads:出售连接类,无最小paypal支付(特别推荐)

ask2link: 出售连接类,最低10美元paypal支付

BackLinks: 出售连接类,无最小paypal支付

Linkadage: 出售连接类,无最小paypal支付

linkworth: 出售连接类,最低25美元paypal支付

PerformancingAds:出售连接类,最低10美元paypal支付

feedm8:Take your blog mobile and earn more,博客手机浏览赚钱类

博客付费评论类:

PayPerPost:付费 评论商,每篇博客文章5-100多美元不等,paypal支付

Sponsoredreviews: 付费评论商,每篇博客文章5-100多美元不等,paypal支付

via

21andy.com 注:CJ有很多中国人不能申请,bidvertiser扣量严重,价钱又低,Adbrite是Adsense之外的不二选择,但收款周期太长,要3个月

Share
分类: SEO 标签:

Linux下用squid配置透明反向代理

2010年11月27日 无风的飘逸 1 条评论
linux 配置squid服务器和透明代理
1.确认环境
rpm -qa |grep  squid
squid-2.5.STABLE6-3(我的系统已经安装的)
2.确认服务器主机有完整的域名(否则无法初始化)
vi /etc/hosts
vi /etc/sysconfig/network
such as:  127.0.0.1          linkserv.test.com    linkserv
3.初始化squid服务器
squid  -z (会在工作目录/var/spool/squid 下建立子目录)
4.启动服务
servcie squid start
5.修改配置文件
vi  /etc/squid/squid.conf
第53行可以修改http服务端口
第480行可以修改缓冲内存数量
第692行可以修改工作目录默认值 100  16  256  分别代表目录最大容量 100M、一级目录为16个
个、二级子目录为256个
第1801行可以修改ACL设置项,通用格式如下
ACL              名字                 控制方式              控制目标
acl               自定义            src源地址               网段或主机
dst目标地址            。。。
port端口                 #加应用服务
time时间
第1864行设置http_access过滤规则,从上到下匹配
6.修改访问控制策略
在squid.conf 中分别添加
acl   clients   src   192.168.1.0/24(内网网段)
http_access   allow   clients  (一定要添加在http_access  deny  all 前)
7.重启squid服务
service squid restart
8.进入防火墙配置,确定eth0  eth1已选择为trust device(如果这步不选,squid无法控制客户机http访问)
system-config-securitylevel-tui
透明代理设置
在/etc/squid/squid.conf配置文件中添加配置
httpd_accel_host  virtual
httpd_accel_port   80
httpd_accel_with_proxy   on
httpd_accel_uses_host_header   on
执行一下squid脚本  service squid  load
修改防火墙配置脚本iptables_masquerade在IP伪装命令前添加如下命令
iptables  -t  nat  -A  PREROUTING  -s 内网网段  -p  tcp  --dport  80 -j REDIRECT --to-ports 3128
透明代理配置后就不需要在客户机上设置代理
Share
分类: Linux 技术 标签: