阅读杂记(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,可以设置把最后的对象变为什么样子

时间: 2024-09-22 14:10:25

阅读杂记(RSA,PDO)的相关文章

HTTP使用RSA公钥加密算法加密明文

网站想要加密传输数据以防被窃取,最可靠的方式莫过于使用公钥加密算法加密,使用HTTPS协议的网站在整个传输过程中都使用了这个技术,对于未能使用HTTPS的HTTP网站我们也可以自行实现. 功能说明 由于HTTP是直接传输明文数据的,在网络安全越发严峻的今天,未经加密的HTTP方式已经变得岌岌可危,谷歌公司更是直接表明在搜索结果中会优先考虑使用HTTPS加密的网站. 尽管整体趋势是向HTTPS倾斜的,但是由于诸多服务器以及CDN等服务商还没全面兼容HTTPS协议,目前要实现整站切换至HTTPS协议

漫谈iOS RSA非对称加密与解密

前言 最近公司的客户端安全性出现了严重的问题,如今这个出解决方案并自我测试验证可行性的重任落在了我的身上,学习了很多他人的文章,再经过多次讨论,最后才确定最终解决方案.笔者在这里讲讲这一经历中所需要了解的知识. iOS客户端想要加密传输数据以防被窃取,最可靠的方式莫过于使用公钥加密算法加密,使用HTTPS协议在整个传输过程中都使用了这个技术,对于未能使用HTTPS的HTTP接口,我们能否实现RSA加密呢? PHP端实现解密可参考:iOS与PHP端实现RSA非对称加密解密 提示:本篇文章只讲RSA

精华阅读第7期|程序员职业人生规划的三点建议

不久前,在中关村创新工场有一场为广大程序员同学做的职业规划分享,优才学院的 CEO 伍星和优伯立信的 CEO 罗飞给大家分享很多关于职业规划的东西.技术到底是不是吃青春饭?在职业规划时,是不是要了解行业趋势?工作的意识形态真的很重要吗?程序员应该如何安排自己的业余时间?程序员如何去面试,如何去找对象?非常的「接地气」! 其实,初识罗飞也是因为一场优才学院的线下活动,他看起来很安静,但是往往安静的人,都是非常有「深度」的人.他在<程序员职业人生规划的三点建议>中,谈到了对技术思考的3个阶段,分享

2014寒假杂记

当老师的,每年能够享受两个假期,很幸福的事.这是一段可以自由安排的时间.自由,随心地安排一些事做,的确感觉很好.下周一就要正式开课了,要在各项约束下开展工作了. 寒假开展的几件事情: (1)在早就列出提纲的N篇教研论文中,捡起来完成了两篇<"问题求解"课对我的教学工作启发>和<利用博客提交作业的程序设计课程实践模式>,投稿<计算机教育>.现在教学研究类论文发表的整体情况感觉很乱,在其他期刊上陆续发表过一些凑数的文章.<计算机教育>是我一直

RSA/SHA1加密和数字签名算法在开放平台中的应用

RSA/SHA1加密和数字签名算法在开放平台中的应用 加密算法 加密算法分为两大类:1.对称加密算法:2.非对称加密算法. 密钥个数 加密 解密 对称加密 一个 使用密钥加密 使用同一个密钥解密 非对称加密 两个,公钥和私钥 使用其中一把密钥加密 使用另外一把密钥解密 RSA非对称加密算法 RSA是目前应用最广泛的非对称加密算法,各种语言都支持RSA算法,如Java,Python,C++(openssl),Go(openssl),PHP(openssl),Object-C,Android,jav

RSA算法

先说下这个算法,RSA公钥加密算法是1977年由Ron Rivest.Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的. 这个算法的名字也是他们三个人名字首字母,RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥. package rsa; import java.math.BigInteger; public class RSA { private long p,q,e,d,n; publ

全新的PDO数据库操作类php版(仅适用Mysql)_php实例

复制代码 代码如下: /** * 作者:胡睿 * 日期:2012/07/21 * 电邮:hooray0905@foxmail.com */ class HRDB{ protected $pdo; protected $res; protected $config; /*构造函数*/ function __construct($config){ $this->Config = $config; $this->connect(); } /*数据库连接*/ public function conne

jQuery+Pdo编写login登陆界面_jquery

Jquery是继prototype之后又一个优秀的Javascript库.而且它是轻量级的js库.共有两个版本的 jQuery 可供下载:一份是精简过的,另一份是未压缩的(供调试或阅读).这两个版本都可从 jQuery.com 下载.所以开发学习建议使用压缩的. 当然啦,除了直接下载jquery.js文件外,还可以在html头中插入Google或者Microsoft的CDN来在网页加载时直接从网上获取库文件支持. 使用 Google 的 CDN: <head> <script type=

php rsa 加密,解密,签名,验签详解_php技巧

php rsa 加密,解密,签名,验签 由于对接第三方机构使用的是Java版本的rsa加解密方法,所有刚开始在网上搜到很多PHP版本的rsa加解密,但是对接java大多都不适用. 以下php版本是适用于对接java接口,java适用密钥再php语言使用是需要添加 -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- 使用密钥:加密公钥  public_key.cer 解密私钥  private_key.key 签名私钥 sign_key.ke