php的二进制安全

php中有个二进制安全函数的概念,但是什么是二进制安全呢?

二进制安全功能(binary-safe function)是指在一个二进制文件上所执行的不更改文件内容的功能或者操作。这能够保证文件不会因为某些操作而遭到损坏。二进制数据是按照一串0和1的形式编码的。而绝大多数的程序会给某些特殊的比特串赋予不同的格式代码,所以当用户使用一个程序读取一个二进制文件时,该文件会被按照这个程序的规则进行解释。如果这个程序所使用的格式编码和文件被写入的格式编码一致,那么这个文件可以被正常读取,否则该文件的格式代码之中会被附加一些无意义的符号,也可能会导致文件损坏。如果最严重的情况发生,这样的操作会因为损坏导致你的数据永久丢失。所以你应该将重要的文件保存在只读性的存储介质上,例如光盘。


上面的解释是网上转载最多的一种说法,其实说白了就是一个字符串,你传递过来是什么,我就以什么来处理,不做处理,比如一个字符串是"abc\x00134",如果用非二进制函数处理,那么这个字符串就会被当做abc来处理。但是如果是用的二进制安全函数来处理,那么这个字符串还被当做“abc\x00134"。说的专业点就是大多数的函数当其使用任何特别的安全或标记字符,如转义码,还是那些期望 null 结尾的字符串,不是二进制安全的。一个可能的例外将其明确的目的是要搜索的二进制字符串中的某些字符的函数。其本质上将操作输入作为原始的、无任何特殊格式意义的数据流。其在操作上应包含一个字符所能有的256种可能的值(假设为8为字符)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值