php实现rsa签名和验签
这两天在弄某支付接口相关的东西,以前没做过这块,在签名和验签的过程中遇到了一些问题,记下来.
首先生成一个1024位的私钥:
openssl genrsa -out private.pem 1024
这两天在弄某支付接口相关的东西,以前没做过这块,在签名和验签的过程中遇到了一些问题,记下来.
首先生成一个1024位的私钥:
openssl genrsa -out private.pem 1024
pdo_oci已经很久没人更新了,有个bug存在很久了也一直没有修复。上次遇到了这个问题,老大发我了一个patch,这次又用到了,就顺手记下来。
报错信息
column XXX data was too large for buffer and was truncated to fit it in XXX
做php开发经常需要用到gd库,但是也遇到几次部署环境默认没有安装gd的情况,遂在此做下总结,以备不时之需.
通过yum,apt-get等包式管理安装方式安装的php直接运行对应命令即可,故不在此赘述。本文主要记录在linux环境下编译gd扩展及其所需依赖。
gd扩展主要依赖zlib,freetype,libpng,libjpeg这4个库,所以我们先编译这四个库。
php的反射机制可以带参构造对象,利用这个特性可以很方便的实现工厂:
function factory($class, $args){
if(class_exists($class)){
return (new \ReflectionClass($class))->newInstanceArgs($args);
}
}
$db = array(
'PDO',
array(
'mysql:dbname=test;host=localhost',
'root',
'root',
array(PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC)
)
);
var_dump(factory($db[0], $db[1])->query('show tables')->fetchAll());
昨天在别人发了个用golang的channel写菲波拉契数列的代码,说是有问题,然后我试着撸一个,结果发现管道阻塞状态下的一个trap,就是当主线程和子线程同时阻塞一个管道时,当管道有了数据是优先返回给主线程的.测试代码如下:
package main
import (
."fmt"
)
func fbi(num int,ch chan int){
if num<3 {
ch<-num;
}else{
/*
cl:=make(chan int);
go fbi(num-2,cl);
tmp:=<-cl;
cr:=make(chan int);
go fbi(num-1,cr);
tmp+=<-cr;
ch<-tmp;
*/
go fbi(num-2,ch);
r:=<-ch;
Println("in go");
go fbi(num-1,ch);
l:=<-ch;
ch<- (l+r);
}
}
func main(){
ch:=make(chan int);
go fbi(10,ch);
Println(<-ch);
Println("in main go");
}