阅读杂记(RSA,PDO)

RSA算法

RSA Key Size Selection

http://www.vocal.com/cryptography/rsa-key-size-selection/

这篇文章说的是如何选择RSA密钥的长度。RSA密钥的长度是可以选择的,RSA密钥的长度影响加密后的长度,可以加密的串长度,加密和解密的时间。

简单来说就是:

1 密钥长度和可加密的字符串长度成正比。RSA的密钥越长,其对应公钥可以加密的字符串的字节数也会对应加长。其加密后的字符串的长度也越长。

2 密钥长度和算法复杂度成正比。密钥越长,破解需要的时间也就越长,算法复杂度也就越高。

3 密钥长度和加密解密的时间成正比。密钥越长,加密解密时间也就越长。

所以如何选择一个安全又高效的RSA密钥长度是很重要的。在2000年,研究表示1024bit长度的密钥的破解需要花费使用一套10亿美金的设备破解10年的时间。基本上1024bit的长度就能保证RSA的安全了。(PHP的RSA默认就是生成和使用1024bit的密钥)

1024bit长度的密钥能加密117byte的字节,最后生成的加密串有256byte长。

PDO相关阅读

PDO封装了数据库的操作。

事务

PDO有事务的概念,相关的方法是:

PDO::beginTransaction

PDO::commit

PDO::rollBack

分别是开始事务,提交事务,回滚事务

PDO::inTransaction 判断是否在一个事务中

PDO有预处理方法:

PDO::prepare

实际上就是SQL的模板,这个方法返回的是PDOStatement数据结构。

prepare的参数表示可以使用:name 或者 ? 来表示,但是两种不能混用。

PDO::prepare调用后对应的执行方法是PDO::execute

PDOStatement

PDOStatement有个queryString的属性,查出query的语句

还有的其他方法有:

将返回的某一列指定给php的某个变量。通常和fetch还有fetchAll联合使用

bindParam和bindValue都是将query模板的对应参数做替换,但是bindParam值将模板中的对应参数替换成为变量并执行之后,如果有输出变量的话会将这个变量进行改变。bindValue就不会。

关闭指针。PDO会有个指针来定位结果集。所以当有两个statement的时候,在两个statement中切换的时候要先使用closeCursor来切换

调试使用

这两个函数用来输出错误信息

执行prepare中的语句,返回的结果使用fetch来获取

获取一行数据

获取多行数据

获取某列值,获取单个

  • PDOStatement->fetchObject — Fetches the next row and returns it as an object.
  • 同fetch,只是fetch的style是PDO::FETCH_OBJ

指针下移一位,和fetch一起使用可以获取全部rowset

获取结果的行数和列数

设置statement的属性

设置statement的Mode,可以设置把最后的对象变为什么样子

实时了解作者更多技术文章,技术心得,请关注微信公众号“轩脉刃的刀光剑影”

本文基于署名-非商业性使用 3.0许可协议发布,欢迎转载,演绎,但是必须保留本文的署名叶剑峰(包含链接http://www.cnblogs.com/yjf512/),且不得用于商业目的。如您有任何疑问或者授权方面的协商,请与我联系

原文地址:https://www.cnblogs.com/yjf512/p/2731302.html