• QQ21031394

    工作时间

    周一至周五:9:30-18:30

    周末及节日:根据情况调休

  • 手机版二维码

    随时手机查素材

  • 扫描二维码

    加入官方QQ群

站长推荐
Rubbish 一级会员
  • 未知地域
  • 17发帖数
  • 4主题数
  • 1关注数
  • 1粉丝

[垃圾佬] Base64编码

[复制链接]
Rubbish 发表于 2022-2-19 23:40:05 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
提莫作坊QQ群:提莫作坊www.tbwlm.cn

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
没啥好说的

下面是代码

  1. library Base64
  2.     globals
  3.         private string EncFunc = "(
  4. function(str)
  5. local encstring={[0]='A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/',}
  6. local decstring={}
  7. for k,v in pairs(encstring) do
  8. decstring[v:byte()]=k
  9. end
  10. local byte=str
  11. if type(str)=='string' then
  12. byte={str:byte(1,#str)}
  13. end
  14. if type(byte)~='table' then
  15. return ''
  16. end
  17. local result={}
  18. local len=#byte
  19. local number=len%3
  20. local num=0
  21. for i=1,len,3 do
  22. num=((byte[i] or 0)<<16)+((byte[i+1] or 0)<<8)+((byte[i+2] or 0)<<0)
  23. for j=3,0,-1 do
  24. local tmp=num>>(j*6)
  25. table.insert(result,encstring[tmp&0x3f])
  26. end
  27. end
  28. if number>0 then
  29. for i=3-number,1,-1 do
  30. result[#result-i+1]='='
  31. end
  32. end
  33. return table.concat(result)
  34. end)
  35. "
  36.         private string DecFunc = "(
  37. function(str)
  38. local encstring={[0]='A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/',}
  39. local decstring={}
  40. for k,v in pairs(encstring) do
  41. decstring[v:byte()]=k
  42. end
  43. local byte=str
  44. if type(str)=='string' then
  45. byte={str:byte(1,#str)}
  46. end
  47. if type(byte)~='table' then
  48. return ''
  49. end
  50. local result={}
  51. local len=#byte
  52. local num=0
  53. local number=0
  54. local data=str:gsub('=',function()
  55. number=number+1
  56. end)
  57. if len%4~=0 then
  58. return ''
  59. end
  60. for i=1,len,4 do
  61. num=((decstring[byte[i]] or 0)<<18)+((decstring[byte[i+1]] or 0)<<12)+((decstring[byte[i+2]] or 0)<<6)+((decstring[byte[i+3]] or 0)<<0)
  62. for j=2,0,-1 do
  63. local tmp=num>>(j*8)
  64. table.insert(result,tmp&0xff)
  65. end
  66. end
  67. local max=#result
  68. if number>0 then
  69. for i=number,1,-1 do
  70. result[max-i+1]=nil
  71. end
  72. end
  73. return string.char(table.unpack(result))
  74. end)
  75. "
  76.     endglobals
  77.     function Base64EncString takes string s returns string
  78.         local string func   = EncFunc + "('" + s + "')"
  79.         local string result = EXExecuteScript( func )
  80.         return result
  81.     endfunction
  82.     function Base64DecString takes string s returns string
  83.         local string func   = DecFunc + "('" + s + "')"
  84.         local string result = EXExecuteScript( func )
  85.         return result
  86.     endfunction
  87. endlibrary
复制代码



下面是测试代码:
function B2S takes boolean bool return string
    if bool then
        return "true"
    endif
    return "false"
endfunction

function Trig_Base_64Actions takes nothing returns nothing
    local string ChatString = GetEventPlayerChatString( )
    local string EncString  = ""
    local string DecString  = ""
    if EncString != "" or EncString != null then
        call BJDebugMsg( "Base64 加密字符串 -> " + ChatString )
        set EncString = Base64EncString( ChatString )
        call BJDebugMsg( "Base64 加码 -> " + EncString )
        set DecString = Base64DecString( EncString )
        call BJDebugMsg( "Base64 解码 -> " + DecString )
        call BJDebugMsg( "是否成功 -> " + B2S( ChatString == DecString ) )
    endif
endfunction

//===========================================================================
function InitTrig_Base_64 takes nothing returns nothing
    set gg_trg_Base_64 = CreateTrigger()
    call TriggerRegisterPlayerChatEvent(gg_trg_Base_64, Player(0), "", true)
    call TriggerAddAction(gg_trg_Base_64, function Trig_Base_64Actions)
endfunction
楼主热帖
免责条款:本站仅提供学习的平台,所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,并不承担任何法律责任,如果对您的版权或者利益造成损害,请提供相应的资质证明,我们将于3个工作日内予以删除。

本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。

本网站所提供的信息,只供参考之用。本网站不保证信息的准确性、有效性、及时性和完整性。本网站及其雇员一概毋须以任何方式就任何信息传递或传送的失误、不准确或错误,对用户或任何其他人士负任何直接或间接责任。在法律允许的范围内,本网站在此声明,不承担用户或任何人士就使用或未能使用本网站所提供的信息或任何链接所引致的任何直接、间接、附带、从属、特殊、惩罚性或惩戒性的损害赔偿。

精彩评论2

提百万 发表于 2022-2-19 23:47:10 | 显示全部楼层
小白提问,这个有啥用
[发帖际遇]: 提百万 在老提莫家吃蘑菇,花了 25 枚 绿钻. 幸运榜 / 衰神榜
 楼主| Rubbish 发表于 2022-2-20 00:24:39 | 显示全部楼层
提百万 发表于 2022-2-19 23:47
小白提问,这个有啥用

啥用都没有
[发帖际遇]: Rubbish 发帖时在路边捡到了老提莫的蘑菇 4 枚 绿钻,偷偷放进了口袋. 幸运榜 / 衰神榜

强调下版规的规定,如有恶意灌水从重处罚:
=====发表主题规则=======
1.主题内容请一定要附带预览图片,谢谢;
2.搬运来的东西请尽量不要卖钱!;
3.发帖有任何疑问请联系QQ21031394;
=====发表回复规则=======
1.禁止直接复制标题内容的;
2.禁止纯数字或者纯字母的;
3.禁止乱打一通文不对题;
4.禁止屠版和刷分行为;
第一次扣分处理,第二次扣分+警告,警告三次禁言三天,绝不手软,情况严重的直接封号,请大家珍惜自己的账号!

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

本版积分规则

猜你喜欢
天工维度唯一QQ群
786014245

欢迎进群交流,入群答案:编辑器

  • 官方在线客服

    QQ客服:小雪

    点击交谈

    QQ客服:砂糖

    点击交谈

    团队老大:荀公子

    商务合作
  • 上海市静安区共和新路4718号宏慧新汇园6号楼603室

  • 手机扫码查看手机版

    手机查找资源更方便

  • 扫一扫关注官方微信

    加入官方QQ群

Powered by 天天RPG&DZX3.4 ©2020-2021 Comsenz Inc.提百万设计( 沪ICP备18032615号-1 )营业执照