开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 3221|回复: 12
收起左侧

[易语言纯源码] 易语言+PHP 文本加解密 带秘钥

[复制链接]
结帖率:0% (0/2)
发表于 2022-12-20 14:34:24 | 显示全部楼层 |阅读模式   江西省上饶市
分享源码
界面截图: -
是否带模块: -
备注说明: -
提供易语言 PHP的加解密方法, 可用于关键信息加密使用(安全性不太高, 拿到秘钥就能破J, 但是总比没有好)

易语言 加解密
  1. .版本 2
  2. .支持库 dp1

  3. .子程序 小涛_加解密, 文本型
  4. .参数 文本内容, 文本型
  5. .参数 是否解密, 逻辑型
  6. .参数 秘钥, 文本型
  7. .局部变量 秘钥长度, 整数型
  8. .局部变量 文本长度, 整数型
  9. .局部变量 i, 整数型
  10. .局部变量 rndkey, 整数型, , "256"
  11. .局部变量 box, 整数型, , "256"
  12. .局部变量 j, 整数型
  13. .局部变量 tmp, 整数型
  14. .局部变量 a, 整数型
  15. .局部变量 re, 文本型
  16. .局部变量 返回内容, 文本型

  17. 秘钥 = 到文本 (取数据摘要 (到字节集 (秘钥)))
  18. 秘钥长度 = 取文本长度 (秘钥)
  19. .如果 (是否解密 = 真)
  20.     文本内容 = 到文本 (编码_BASE64解码 (文本内容, 真))
  21. .否则
  22.     文本内容 = 取文本左边 (取数据摘要 (到字节集 (文本内容 + 秘钥)), 8) + 文本内容
  23. .如果结束
  24. 文本长度 = 取文本长度 (文本内容)

  25. .计次循环首 (256, i)
  26.     rndkey [i] = 取代码 (取文本中间 (秘钥, (i - 1) % 秘钥长度 + 1, 1), )
  27.     box [i] = i - 1
  28. .计次循环尾 ()
  29. j = 0
  30. .计次循环首 (256, i)
  31.     j = (j + box [i] + rndkey [i]) % 256
  32.     tmp = box [i]
  33.     box [i] = box [j + 1]
  34.     box [j + 1] = tmp
  35. .计次循环尾 ()
  36. a = 0
  37. j = 0
  38. .计次循环首 (文本长度, i)
  39.     a = (a + 1) % 256
  40.     j = (j + box [a + 1]) % 256
  41.     tmp = box [a + 1]
  42.     box [a + 1] = box [j + 1]
  43.     box [j + 1] = tmp
  44.     re = re + 字符 (小涛_xor (取代码 (取文本中间 (文本内容, i, 1), ), box [到整数 ((box [a + 1] + box [j + 1]) % 256) + 1]))
  45. .计次循环尾 ()
  46. .如果 (是否解密 = 真)
  47.     返回内容 = 取文本中间 (re, 9, 取文本长度 (re))
  48. .否则
  49.     返回内容 = 子文本替换 (编码_BASE64编码 (到字节集 (re)), “=”, “”, , , 真)
  50. .如果结束

  51. 返回 (返回内容)

  52. .子程序 小涛_xor, 整数型, , 位异或
  53. .参数 Value1, 整数型
  54. .参数 Value2, 整数型

  55. 置入代码 ({ 139, 69, 8, 51, 69, 12, 137, 236, 93, 194, 8, 0 })
  56. 返回 (0)
复制代码

PHP 加解密
  1. /**
  2. * 文本加解密
  3. */
  4. function textEnc($string,$operation,$key=''){   
  5.     $key=md5($key);   
  6.     $key_length=strlen($key);   
  7.     $string=$operation=='D'?base64_decode($string):substr(md5($string.$key),0,8).$string;   
  8.     $string_length=strlen($string);   
  9.     $rndkey=$box=array();   
  10.     $result='';
  11.     for($i=0;$i<=255;$i++){   
  12.         $rndkey[$i]=ord($key[$i%$key_length]);
  13.         $box[$i]=$i;   
  14.     }
  15.     for($j=$i=0;$i<256;$i++){   
  16.         $j=($j+$box[$i]+$rndkey[$i])%256;   
  17.         $tmp=$box[$i];
  18.         $box[$i]=$box[$j];
  19.         $box[$j]=$tmp;
  20.     }   
  21.     for($a=$j=$i=0;$i<$string_length;$i++){   
  22.         $a=($a+1)%256;   
  23.         $j=($j+$box[$a])%256;
  24.         $tmp=$box[$a];   
  25.         $box[$a]=$box[$j];   
  26.         $box[$j]=$tmp;   
  27.         $result.=chr(ord($string[$i])^($box[($box[$a]+$box[$j])%256]));  
  28.     }   
  29.     if($operation=='D'){   
  30.         if(substr($result,0,8)==substr(md5(substr($result,8).$key),0,8)){   
  31.             return substr($result,8);   
  32.         }else{
  33.             return'';
  34.         }
  35.     }else{   
  36.         return str_replace('=','',base64_encode($result));   
  37.     }   
  38. }
复制代码



评分

参与人数 1精币 +2 收起 理由
kyo9766 + 2 感谢分享,很给力!~

查看全部评分


签到天数: 20 天

发表于 2023-1-8 15:48:54 | 显示全部楼层   浙江省金华市
剑轶 发表于 2022-12-20 18:48
这个看着不像是RC4?

RC4+MD5变异
回复 支持 反对

使用道具 举报

结帖率:0% (0/2)

签到天数: 9 天

 楼主| 发表于 2023-1-8 15:12:52 | 显示全部楼层   江西省上饶市
嫂子 发表于 2022-12-20 14:49
就是Discuz的 AUTH算法

应该是吧 PHP网上找的 然后自己弄了个易语言版本 刚好最近用得上
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 12 天

发表于 2023-1-5 16:08:42 | 显示全部楼层   江苏省苏州市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

发表于 2022-12-28 15:01:47 | 显示全部楼层   湖南省郴州市
666666666666666666666
回复 支持 反对

使用道具 举报

结帖率:73% (8/11)

签到天数: 19 天

发表于 2022-12-23 10:10:59 | 显示全部楼层   河南省焦作市

很好谢谢分享11
回复 支持 反对

使用道具 举报

签到天数: 18 天

发表于 2022-12-21 15:04:56 | 显示全部楼层   新疆维吾尔自治区昌吉回族自治州
        感谢分享,支持你
回复 支持 反对

使用道具 举报

结帖率:0% (0/2)

签到天数: 17 天

发表于 2022-12-21 14:42:07 | 显示全部楼层   广西壮族自治区玉林市
感谢分享,支持开源~
回复 支持 反对

使用道具 举报

结帖率:72% (13/18)

签到天数: 5 天

发表于 2022-12-21 14:36:01 | 显示全部楼层   山东省菏泽市
努力挣分中
回复 支持 反对

使用道具 举报

签到天数: 3 天

发表于 2022-12-21 08:36:12 | 显示全部楼层   陕西省西安市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表