996 KB, 下载次数: 26
996 KB, 下载次数: 22
996 KB, 下载次数: 32
994.68 KB, 下载次数: 27
#encoding : utf-8 def windows? !(RUBY_PLATFORM =~ /win32/).nil? end #if windows? require 'iconv' $i=Iconv.new("GBK","UTF-8") $g=Iconv.new("UTF-8","GBK") alias print_oo print alias gets_oo gets def print(str) print_oo $i.iconv str end def gets return $g.iconv gets_oo end #end require "zlib" require "openssl" require "digest/sha2" print "模板名字:" name=gets.delete("\n").delete("\r") print "模板ID(唯一标识符):" id=gets.delete("\n").delete("\r").to_sym print "模板作者:" maker=gets.delete("\n").delete("\r") print "加密选项(yes/no):" key=gets.delete("\n").delete("\r") print "高级控制串(保留功能,不明白的留空即可):" control=gets.delete("\n").delete("\r") ############################################################ ## 您需要注意的是,加密只能保证您的模板在分发时不被窃取 !## ############################################################ def pathary2path(path) path1="" for i in path path1<<i<<"\\" end return path1 end def copyall(src,flag) list=Dir.entries(src) list.each_index do |x| next if list[x]=="." or list[x]==".." or list[x]==".svn" or list[x]=="entries" or list[x]==".git" #puts list[x] print src+list[x] + "\n" unless File.directory?(src+list[x]) #FileUtils.cp "#{src+list[x]}" skey=OpenSSL::Cipher.new('aes-256-cbc').encrypt skey.key=$key skey.iv=$iv File.open(src+list[x],"rb"){|f|fd=f.read();ck=Digest::SHA512.base64digest(fd);$flist<<["file",flag+list[x],ck,Zlib::Deflate.deflate(skey.update(fd)+skey.final,5)];}; else #Dir::mkdir(target+list[x]) $flist<<["dir",src+list[x]] copyall(src+list[x]+"\\",flag+list[x]+"/") end end end path=Dir.pwd path.gsub!(/\//){"\\"} path<<"\\" head={:id=>id,:name=>name,:maker=>maker,:control=>control,:ver=>"0.0.1 b3",:keyed=>(key=="yes"),:coder=>"aes-256-cbc"} $skey=OpenSSL::Cipher.new('aes-256-cbc').encrypt $key = $skey.random_key $iv = $skey.random_iv if head[:keyed] File.open(path+id.to_s+".tpl.key","wb"){|f|Marshal.dump([$key,$iv],f)} else head[:code]=[$key,$iv] end $flist=[] Dir.chdir(path+"template\\") copyall(path+"template\\","/") url=path+id.to_s+'.tpl' print url File.open(url,"wb"){|f| Marshal.dump(head,f) Marshal.dump($flist,f) }
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |