设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2785|回复: 3
打印 上一主题 下一主题

[RMXP发布] Bitmap化数据【加密】【可用于加密存档】

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
154 小时
注册时间
2011-7-9
帖子
423
跳转到指定楼层
1
发表于 2011-8-20 08:08:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

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

x
本帖最后由 灵魂の补给 于 2011-8-20 09:01 编辑

这个脚本可以把传入数据加密成bitmap,你可以加入储存PNG脚本,就可以保存下来。也可以从图片中解密数据。
加密细节不公开,请大家也不要去看吧。可以用来加密存档,不过需要设置下。
这个加密,支持汉字。

左上角就是由透明图片填充的数据块。
好了,下载在这里:(这个工程有4种脚本,本脚本请与图上树干右事件对话。)防止此脚本被人使用太多,容易破解,设置了权限。
游客,本帖隐藏的内容需要积分高于 5 才可浏览,您当前积分为 0

脚本部分:
  1. #==============================================================================
  2. # ■ Sprite_Save ≮1版块≯
  3. #------------------------------------------------------------------------------
  4. #   位图数据库  作者:END66RPG
  5. #    操作法:
  6. #Sprite_Save.new(viewport,"加密","save and load")
  7. #    或者:
  8. #XXX.update2(mode)
  9. #XXX.data = "数据"
  10. #==============================================================================
  11. class Sprite_Save < Sprite
  12.   #--------------------------------------------------------------------------
  13.   # ● 初始化对像
  14.   #     viewport : 显示端口
  15.   #     picture  : 图片 (Game_Picture)
  16.   #--------------------------------------------------------------------------
  17.   def initialize(viewport, mode, file, data="")
  18.     super(viewport)
  19.     @mode = mode
  20.     @file = file
  21.     @data = data
  22.     update
  23.   end
  24.   def make_png(e)
  25.     eval"self.bitmap.#{e}"
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # ● 释放
  29.   #--------------------------------------------------------------------------
  30.   def dispose
  31.     if self.bitmap != nil
  32.       self.bitmap.dispose
  33.     end
  34.     super
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● 更新画面
  38.   #--------------------------------------------------------------------------
  39.   def update
  40.     super
  41.     #p @file
  42.     self.bitmap = RPG::Cache.picture(@file)#Bitmap.new('Graphics/Icons/gem_02.png')
  43.     self.zoom_x = 10#@picture.zoom_x / 100.0
  44.     self.zoom_y = 10#@picture.zoom_y / 100.0
  45.     case @mode
  46.     when "加密"
  47.       jiami
  48.     when "解密"
  49.       jiemi
  50.     end
  51.     @mode = ""
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   # ● 更新画面2
  55.   #--------------------------------------------------------------------------
  56.   def update2(mode)
  57.     case mode
  58.     when "加密"
  59.       jiami
  60.     when "解密"
  61.       jiemi
  62.     end
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● 更新画面3
  66.   #--------------------------------------------------------------------------
  67.   def data=(new_data)
  68.     @data = new_data
  69.   end
  70. end
复制代码
  1. #==============================================================================
  2. # ■ Sprite
  3. #------------------------------------------------------------------------------
  4. #==============================================================================
  5. #==============================================
  6. # ■ Sprite_Save ≮2版块≯
  7. #    解密
  8. #==============================================
  9. class Sprite_Save < Sprite
  10.   def jiemi
  11.     data = ""
  12.     break_switch = nil
  13.     for y in 0..(self.bitmap.height-1)
  14.       if break_switch != nil
  15.         break_switch = false
  16.         break
  17.       end
  18.       for x in 0..(self.bitmap.width-1)
  19.         color = self.bitmap.get_pixel(x, y)
  20.         #p"x#{x} y#{y}"
  21.         if color.alpha == 0
  22.           break_switch = true
  23.           break
  24.         end
  25.         if color.alpha.round == 200 #if the data is chinese words,
  26.           red = color.red.round.chr.to_s
  27.           green = color.green.round.chr.to_s
  28.           blue = color.blue.round.chr.to_s
  29.           china_b    = "中"
  30.           china_b[0] = red
  31.           china_b[1] = green
  32.           china_b[2] = blue
  33.           #china_b.gsub!(/\\(.)/) { $1 }
  34.           data += china_b#EasyConv.back_chr(china_b).scan(/./)[0]
  35.           next
  36.         end
  37.         data += color.red.round.chr unless color.red.round.chr == "*"
  38.         data += color.green.round.chr unless color.green.round.chr == "*"
  39.         data += color.blue.round.chr unless color.blue.round.chr == "*"
  40.       end
  41.     end
  42.     #p data
  43.     #eval(data)
  44.     #File.open("jiemi.txt","w+").write(data)
  45.     return data
  46.   end
  47. end
复制代码
  1. #==============================================================================
  2. # ■ Sprite_Save ≮3版块≯
  3. #------------------------------------------------------------------------------
  4. #    加密
  5. #==============================================================================

  6. class Sprite_Save < Sprite
  7.   def forward(x)
  8.     if x == (self.bitmap.width-1)#63
  9.       @x = 0
  10.       @y = 1
  11.     else
  12.       @x = 1
  13.       @y = 0
  14.     end
  15.   end
  16.   def jiami
  17. ##############初始化################
  18.     #data = "print'this game good'"
  19.     #data += ";@mouse_sprite = Sprite.new"
  20.     #data += ";@mouse_sprite.z = 99999"
  21.     #data += ";@mouse_sprite.bitmap = Bitmap.new('Graphics/Pictures/海底生物10.PNG');p'123467890'   "
  22.     @data += "   "
  23.     data = @data.split("")
  24.     b = []
  25.     x,y = 0,0
  26.     time = 0
  27. ####################################

  28. #################取出每个字#########
  29. data.each{|c|
  30. time += 1
  31. 此是中文 = false
  32. if time == (data.size+1) and b.size > 0 and b.size < 3
  33.   b.push("\n")
  34. end
  35. if time==data.size and b.size > 0 and b.size < 3
  36.   b.push(data[-1])
  37.   b.push("\n")
  38. end
  39. if b.size >= 3
  40. ###############普通转码#####################
  41.   b[0]#red
  42.   b[1]#green
  43.   b[2]#blue
  44.   if self.bitmap.get_pixel(x, y).alpha.round == 200
  45.     forward(x)
  46.     y += @y
  47.     @x == 0 ? x = 0 : x += @x
  48.   end
  49.   color = Color.new(b[0][0],b[1][0],b[2][0],255)
  50.   self.bitmap.set_pixel(x, y, color)
  51.   b = []
  52.   #p x
  53.   forward(x)
  54.   y += @y
  55.   @x == 0 ? x = 0 : x += @x
  56. ################普通转码完毕####################
  57. end
  58.   if b.size < 3
  59.     if c.size > 1#如果是中文的情况
  60.       if b.size < 3 and b.size > 0
  61.         b.push "*" if b.size == 2
  62.         if b.size == 1
  63.           b.push "*"
  64.           b.push "*"
  65.         end
  66.         if self.bitmap.get_pixel(x, y).alpha.round == 200
  67.           forward(x)
  68.           y += @y
  69.           @x == 0 ? x = 0 : x += @x
  70.          
  71.         end
  72.         color = Color.new(b[0][0],b[1][0],b[2][0],255)
  73.         self.bitmap.set_pixel(x, y, color)
  74.         b = []
  75.         forward(x)
  76.         y += @y
  77.         @x == 0 ? x = 0 : x += @x
  78.       end
  79.         
  80.       if self.bitmap.get_pixel(x, y).alpha.round == 200
  81.         forward(x)
  82.         y += @y
  83.         @x == 0 ? x = 0 : x += @x
  84.       end
  85.       china_b = c#EasyConv.chr(c)#3字节
  86.       #china_b = china_b.scan(/./)#每个字节分割成1组
  87.       if china_b.size < 3
  88.         #p"此“#{i}”字很有可能破解失败!#{b}"
  89.         (3-china_b.size).times{china_b.push("\000")}
  90.       end
  91.       red = china_b[0]#[0]#.to_i#每个字节变成字码
  92.       green = china_b[1]#[0]#.to_i
  93.       blue = china_b[2]#[0]#.to_i
  94.       china_c = Color.new(red,green,blue,200)
  95.       self.bitmap.fill_rect(x, y, 1, 1, china_c)#200 = 中文判断
  96.       #p c
  97.     else
  98.       b.push c
  99.     end
  100.   end
  101.   
  102. }
  103. ##############取出每个字-END######################
  104.   end
  105.   
  106. end
复制代码






New Game:  【QQ堂4.6单机版】(9月新版!【点此】)个人提供快速网盘http://ad.jlweb.tk/upload/ --- 密码:abcdefg
激零工作室孵化中.....网游make中。。招收游戏监督一名,上线时间:5~12 小时 招收脚本员,美工数位。。
本人Q:330639889 验证:zs    ----广:愿意帮我宣传签名的,站内PM
下面的东西是什么?!请进:http://tieba.baidu.com/p/1453289014【2012最新炸弹型ARPG游戏,历时2年间断坚持制作!】
[img=646,262]http://ftp.66rpg.com/WEB_PLUS/attachment/forum/201203/28/1655578kbk8bqkfazk2

Lv2.观梦者

傻♂逼

梦石
0
星屑
369
在线时间
1605 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

2
发表于 2011-8-20 10:10:52 | 只看该作者
=v=你已经公开了

点评

……积分限制5,先生的判断是 118 < 5 ?  发表于 2011-8-20 18:14
怎么会呢,我设置了权限的。你积分够看  发表于 2011-8-20 10:20
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv3.寻梦者

宛若

梦石
0
星屑
1563
在线时间
526 小时
注册时间
2007-8-19
帖子
1493

极短24参与开拓者

3
发表于 2011-8-25 19:08:54 | 只看该作者
任何没有加密脚本文件的加密方式都如同〇〇膜一样脆弱不堪

点评

自重啊  发表于 2011-8-25 22:09
[url=http://rpg.blue/thread-219730-1-1.html]http://unhero.sinaapp.com/wi.php[/url]
[color=Red]如你所见这是个死坑,没错这就是打我的脸用的[/color]
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
14 小时
注册时间
2010-9-17
帖子
9
4
发表于 2011-8-25 21:49:18 | 只看该作者
五分啊 我才可怜的一分
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-22 02:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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