因为数据验证关系到数据的完整性和规范性,所以数据验证需要开发人员认真调试。ThinkPHP提供了简单、易用的表单字段验证处理功能,能够极大地提高开发效率。表8-1 系统内置的表单验证规则2.配置验证规则验证规则本身支持验证错误提示,所以在ThinkPHP中使用表单验证规则非常简单。......
2025-09-30
数据加密是网站开发中重要的安全技术,PHP共支持两大类加密方式:一种是不可逆的加密方式,即单向加密,例如常见的MD5、Crypt、Des等;另外一种是支持双向操作的加密方式,例如Base64、Xtea等。接下来将分别介绍系统内置的常用加密处理扩展。
1.Des
Des是一种支持加密及解密的加密技术,在Linux、UNIX等操作系统底层实现中,已经在大量应用。PHP很早就支持Des加密,使用方式也比较简单。ThinkPHP内置了Des扩展类库,使用该类库实现Des加密解密,更加符合MVC编程模式,如以下代码所示。
在实际应用开发中,读者可以使用数据库等技术将加密后的字符串保存,使用时直接解密即可还原数据。
2.Base64
Base64加密方式是网络上最常用的加密方式,典型的应用有URL传值。Base64通过把3个8位(bit)的字符转换为4个6位的字符,最后使用0补够8位,最终实现数据加密。解密时也必须要沿这个步骤反向运算。Base64类库的使用与Des类库相类似,如以下代码所示。
3.Rsa(https://www.chuimin.cn)
Rsa是由Ron Rivest、Adi Shamirh及几位美国麻省理工学院学生发明的加密方式,现在已经成为一种国际化通用标准的加密方式。Rsa使用的是数值相乘加密方式,能够实现对超长字符串的加密。Rsa是一种高效的数学加密方式,由于位数高,能够有效防止密码猜测等攻击。Rsa常用于数字证书加密、硬件级的芯片加密等。PHP对Rsa提供了国际化支持,如以下代码所示。
4.Crypt
在PHP中MD5等加密方式都可称为Crypt,但这里的Crypt并不是指MD5,而是ThinkHPP内置的一种实用的双向加密类库,Crypt类库能够对包括中文在内的常见字符进行加密。Crypt类库的加密方式非常简单,根据字符串的长度进行循环截取。此外Crypt类库支持Besa64加密。如以下代码所示。
encrypt方法与decrypt方法都支持两个参数。其中参数1表示加密的字符串;参数2表示是否使用Base64位加密,默认为false。
5.Hmac
Hmac类库是一个哈希运算加密类库,包含了sha1与md5方法。前者用于实现SHA1加密,后者用于实现MD5加密,这两种加密方式都是单向不可逆的,非常适用于加密用户密码。下面将通过代码演示Hmac类库的使用。
相关文章
因为数据验证关系到数据的完整性和规范性,所以数据验证需要开发人员认真调试。ThinkPHP提供了简单、易用的表单字段验证处理功能,能够极大地提高开发效率。表8-1 系统内置的表单验证规则2.配置验证规则验证规则本身支持验证错误提示,所以在ThinkPHP中使用表单验证规则非常简单。......
2025-09-30
加密技术可以分为加密密钥和加密算法两部分。使用对称密钥加密系统时,发送方用密钥对待发送的数据进行加密得到密文,然后把密文传输给接收方,接收方收到发送方传输来的密文后,使用与发送方相同的密钥对此密文进行解密即可得到明文。图4.37对称密钥加密系统的数据传输过程对称密钥加密技术使用单个密钥对数据进行加密或解密,特点是运算速度快,但密钥分发困难。......
2025-09-30
在应用程序中数据库的操作主要分为4大类:创建数据、更新数据、读取数据及删除数据,简称CURD。主流的MVC框架都会对CURD操作进行封装,以达到易用、灵活的目的。ThinkPHP的CURD操作是以连贯操作为基础的,通常情况下这两者会配合使用。......
2025-09-30
上述代码表示创建tpk_user数据表时,将创建5个HASH分区。连续重复同样操作,t2数据表将很快达到存储极限,使用这种方式可以有效地测试数据表分区和数据表索引性能。数据表分区后,在应用层是不需要做任何更改的,这也是笔者建议读者使用数据表分区功能的最主要原因。......
2025-09-30
下面讨论关系型数据加密和存储模型,对每个关系:R(A 1,A 2,…表13.1使用关系emp存储关于雇员的信息emp表在服务器上映射成对应的表,如下:emp S对应属性的索引会在搜索和连接谓词中使用。表13.2存放服务器的加密关系emp S第一列etuple是与emp关系对应的加密元组的串。......
2025-09-30
使用自定义模型,通常情况下也是需要与数据库的真实表名进行映射,这是MVC的一条规范,否则模型就与普通的功能类无异。在调用时,系统提供了D函数,用于快速实例化自定义模型。使用自定义模型之后,在进行数据表操作时就更加灵活。自定义模型的最大特点是代码容易移植,高度重用。......
2025-09-30
因为服务供应商并不可信,所以关系以加密形式存储。假设数据在记录级加密,即每个表的每个记录加密成一个数据块。这样,加密关系表示由一个加密记录集合构成。反之,使用DAS的本意是直接在服务器端处理查询,而无需解密数据。在关系型表示的数据进行加密后,要对其实施SQL查询,即开发出一种能在加密数据上支持比较运算和算术运算的机制。......
2025-09-30
_map属性可以将HTML表单中的元素以别名的方式映射到真实的数据表字段,和其他属性一样,_map属性也必须定义在自定义模型中,该属性的值为二维数组,下面以7.1.3节内容为基础,修改add_article.html表单元素与add动作代码,并在Article模型中创建createAdd方法,用于处理表单数据。接下来在Article模型中使用_map属性将这些元素映射为tpk_article表中的相应字段。......
2025-09-30
相关推荐