加密 PHP 如何对字符串进行加密解密?

类似于BASE64_ENCODE / BASE64_DECODE,但是需要加密后的字符串更简短,最好可以三个字符代表一个中文。

public $STRING_TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

字符串顺序可以自定义。

回复讨论(解决方案)

如果你会位运算的不难

常用汉字的unicode在4e00-9fbf之间,utf-8表现就是三个字节

而且其二进制位结构必然为 1110xxxx 10yyyyyy 10zzzzzz

你看到了,每字节高位都是固定的,编码时完全可以去掉(解码时补回去就行)

去掉后最多只剩6位(2^6=64),完全可以用可见字符一一映射,跟base64没啥区别了

自己做个映射表(相当于密码表了),就能完成加密解密了

如果配合其他位运算(移位、异或等等可逆操作),还能有更多变化

不过有个问题是汉字(生僻字)可能会超出4e00-9fbf,这部分汉字utf-8有可能是4字节,但也是有迹可寻的,这部分自己把握吧

如果你会位运算的不难

常用汉字的unicode在4e00-9fbf之间,utf-8表现就是三个字节

而且其二进制位结构必然为 1110xxxx 10yyyyyy 10zzzzzz

你看到了,每字节高位都是固定的,编码时完全可以去掉(解码时补回去就行)

去掉后最多只剩6位(2^6=64),完全可以用可见字符一一映射,跟base64没啥区别了

自己做个映射表(相当于密码表了),就能完成加密解密了

如果配合其他位运算(移位、异或等等可逆操作),还能有更多变化

不过有个问题是汉字(生僻字)可能会超出4e00-9fbf,这部分汉字utf-8有可能是4字节,但也是有迹可寻的,这部分自己把握吧

我的思路也是取出UNICODE然后做位运算,可惜不会代码。原来弄的是4个字符代表一个元数据,这样编码出来的结果太长了,不友好,所以在找寻另一种方法。刚才看见ETAO的URL很符合我的要求,就是不知道怎么实现的?

爱幕aimer http://s.etao.com/cp/sK7Eu2FpbWVy.html

安卓4.3 http://s.etao.com/cp/sLLXvzQuMw.html

安卓诺基亚 http://s.etao.com/cp/sLLXv8W1u_nRxw.html

求大神实现!

百度一下,有教程的

加密一般都是变长,base64就不错了。还是改开发方案吧。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php中文加密解密,求教PHP中文加密解密代码相关推荐

  1. php 中文加密如何解密,求教PHP中文加密解密代码

    加密 PHP 如何对字符串进行加密解密? 类似于BASE64_ENCODE / BASE64_DECODE,但是需要加密后的字符串更简短,最好可以三个字符代表一个中文. public $STRING_ ...

  2. Base64 混淆加密+迭代次数,Base64前后端加解密不一致、Base64 js加解密结果与java加解密结果不一致,Base64中文加密乱码

    Table of Contents 概述 一.js加密,java解密 1.js加密 1.中文字符串加密 2.英文等字符串加密 3.中文字符串混淆.迭代加密 4.英文等字符串混淆.迭代加密 5.JSON ...

  3. UE4 AES加密解密(解决中文乱码问题)

    UE4自带了AES的加密解密方法,但是找了一下并没有加密解密成功的文章,于是写下这篇给大家,第一次写博客,写不好,写错的地方请帮忙指出. 参考文章: 1.https://blog.csdn.net/s ...

  4. python的aes的ecb加密_AES ECB PKCS5/PKCS7 加密 python实现 支持中文

    ecb模式介绍 电码本模式(electronic codebook book (ecb) 这种模式是将整个明文分成若干段相同的小段,然后对每一小段进行加密. pkcs5padding和pkcs7pad ...

  5. 使用crypto模块实现md5加密功能(解决中文加密前后端不一致的问题)

    使用crypto模块实现md5加密功能(解决中文加密前后端不一致的问题) 参考文章: (1)使用crypto模块实现md5加密功能(解决中文加密前后端不一致的问题) (2)https://www.cn ...

  6. python des解密_python实现DES加密解密方法实例详解

    本文实例讲述了python实现DES加密解密方法.分享给大家供大家参考.具体分析如下: 实现功能:加密中文等字符串 密钥与明文可以不等长 这里只贴代码,加密过程可以自己百度,此处python代码没有优 ...

  7. XXTea加密 c++ 与 js 互相加解密

    关于加密功能,客户端使用的是creator  用js开发的,服务器端用lua做的 要做加密功能: 1.利用c++绑定调用c++实现加密,                             好处: ...

  8. 用户密码的加密解密操作(前端加密,后端解密)

    用户密码的加密解密操作 作者是个小菜狗,行文过程基本都基于自己理解,没有深入查阅文献,如有错误,还请大神指出 背景: 公司做的是一个某某平台的系统,包括前台和后台,作者刚毕业,刚开始试用,带我的师傅让 ...

  9. java 3des_如何用Java进行3DES加密解密 java实现3des加密解密教程

    3des,全称为3DESede或TripleDES,中文解释为是三重数据加密,用户可以通过通过对DES算法进行改进,针对每个数据块进行三次DES加密,下面小编为你带来java实现3des加密解密教程! ...

最新文章

  1. 简单解决AJAX在IE中的缓存问题
  2. python获取当前服务器ip_Python实现获取域名所用服务器的真实IP
  3. #论文 《ImageNet Classification with Deep Convolutional Neural Networks》
  4. [Android开发] 启程
  5. Android IOS WebRTC 音视频开发总结(七九)-- WebRTC选择H.264的四大理由
  6. jar 反编译_Java加密jar包流程
  7. 第4章操作系统基础第五版Aimin.rar
  8. php mysql latin1_mysql从latin1转utf-8的经验
  9. WaitForMultipleObjects函数及原子操作Interlocked系列函数
  10. 使用jmeter做接口测试----柠檬不萌!
  11. 无线自组织网络基础知识
  12. 教你用Python自制一张好看的指数估值图!这招很好用!
  13. 争夺智能化船票:如何迈出第一步 ——访百度主任科学家 毕然
  14. 爬虫学习01 什么是爬虫 爬虫的分类
  15. 打砖块JAVA_运用java开发打砖块游戏
  16. android自动调节屏幕亮度自动调节流程解析
  17. NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE-论文翻译
  18. Stata:面板数据,一般加上个体固定效应和时间固定效应
  19. 用Eclipse搭建VLC SDK开发环境
  20. altera fpga 型号说明_ALTERA的FPGA命名规则(转载)

热门文章

  1. 高聚物PLGA,PCL,PLA分子量如何表征--为华生物
  2. (附源码)计算机毕业设计ssm高校网上报销系统
  3. spire.doc转化word文件
  4. 【redis】-redis单线程模型讲解
  5. MySQL索引(二)索引优化方案有哪些
  6. [毕业设计]基于机器视觉的车辆速度检测与识别算法
  7. 怎样提高并保持百度快照的更新频率
  8. conda 命令更新版本
  9. 【好数推荐】方言语音数据集
  10. 多项式最小二乘拟合算法实现