代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
PHP
】
encod64加密函数
作者:
昕楠
/ 发布于
2014/11/18
/
598
<?PHP //encode64编码可以同时取代encodeURI,encodeURIComponent,endode函数, 因为选取的这些字符都不会被编码. class Encode64{ function code($str) { $KEY = 'PaAwO65goUf7IK2vi9-xq8cFTEXLCDY1Hd3tV0ryzjbpN_BlnSs4mGRkQWMZJeuh'; $a = StrToBytes($str); $len = count($a); $res = $len % 3; $s = "";$i = 2;$v = 0; for (; $i < $len; $i += 3) { $v = $a[$i - 2] + ($a[$i - 1] << 8) + ($a[$i] << 16); $s .= $KEY[$v & 0x3f]; $s .= $KEY[($v >> 6) & 0x3f]; $s .= $KEY[($v >> 12) & 0x3f]; $s .= $KEY[($v >> 18)]; } if ($res == 1) { $v = $a[$i - 2]; $s .= $KEY[$v & 0x3f]; $s .= $KEY[($v >> 6) & 0x3f]; } else if ($res == 2) { $v = $a[$i - 2] + ($a[$i - 1] << 8); $s .= $KEY[$v & 0x3f]; $s .= $KEY[($v >> 6) & 0x3f]; $s .= $KEY[($v >> 12) & 0x3f]; } return $s; } function decode($codeStr) { $KEY = 'PaAwO65goUf7IK2vi9-xq8cFTEXLCDY1Hd3tV0ryzjbpN_BlnSs4mGRkQWMZJeuh'; $dic = array(); for ($i = 0; $i < 64; $i++) { $dic[$KEY[$i]] = $i; } $len = strlen($codeStr); $res = $len % 4; $cLen = floor($len/4)*3; if($res==2) $clen += 1; elseif($res==3) $clen += 2; $code = range(0,$clen); $i = 3;$v = 0; $j = 0; for (; $i < $len; $i += 4) { $v = $dic[$codeStr[$i - 3]]; $v += $dic[$codeStr[$i - 2]] << 6; $v += $dic[$codeStr[$i - 1]] << 12; $v += $dic[$codeStr[$i]] << 18; $code[$j] = $v & 0xff; $code[$j+1] = ($v >> 8) & 0xff; $code[$j+2] = ($v >> 16) & 0xff; $j += 3; } if ($res == 2) {//正确的字节数肯定是余2或3, 没有1的情况, 如果出现, 舍弃. $v = $dic[$codeStr[$i - 3]]; $v += $dic[$codeStr[$i - 2]] << 6; $code[$j] = $v & 0xff; } else if ($res == 3) { $v = $dic[$codeStr[$i - 3]]; $v += $dic[$codeStr[$i - 2]] << 6; $v += $dic[$codeStr[$i - 1]] << 12; $code[$j] = $v & 0xff; $code[$j+1] = ($v >> 8) & 0xff; } return BytesToStr($code); } } function BytesToStr($bytes) { $str = ''; foreach($bytes as $ch) { $str .= chr($ch); } return iconv('UTF-16BE','utf-8',$str); } function StrToBytes($str) { $str = iconv('utf-8','UTF-16BE',$str); $len = strlen($str); $bytes = array(); for($i=0;$i<$len;$i++) { $bytes[] = ord($str[$i]) ; } return $bytes; } ?>
试试其它关键字
encod64
加密
同语言下
.
用net匹配并替换iOS标准的emoji表情符号
.
处理带Emoji表情的的字符串
.
获取微信昵称时 过滤特殊字符
.
通过判断上传文件的头字符来判断文件的类型
.
模拟百度URL加密解密算法
.
以太坊检查地址是否合法
.
实现crontab解析类
.
获取每个月的开始和结束时间
.
图片上传工具类
.
APP手机应用信息采集
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
昕楠
贡献的其它代码
(
33
)
.
找到一个数的所有真因子
.
输入n个整数并计算它们的和
.
输入一个整数序列并计算他们的值
.
计算你收藏的硬币值多少钱
.
输入一行数据并统计其长度
.
线性同余法产生随机数
.
实现文本搜索
.
获取和设置cookie
.
返回上一个页面
.
费马素性检验
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3