破解验证码相关:用imagemagick和tesseract-ocr破解简单验证码_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 破解验证码相关:用imagemagick和tesseract-ocr破解简单验证码

破解验证码相关:用imagemagick和tesseract-ocr破解简单验证码

 2014/8/13 18:40:13  jsczxy2  程序员俱乐部  我要评论(0)
  • 摘要:本文源自:http://hooopo.iteye.com/blog/993538工具:imagemagick+tesseract-ocrTesseract-ocr据说辨识程度是世界排名第三,可谓神器啊。准备工作:1.安装tesseract-ocrJava代码sudoapt-getinstalltesseract2.安装imagemagickJava代码sudoapt-getinstallimagemagick3.安装rmagickJava代码sudoapt-getremove-
  • 标签:

本文源自:http://hooopo.iteye.com/blog/993538

工具:imagemagick +?tesseract-ocr

?

Tesseract-ocr据说辨识程度是世界排名第三,可谓神器啊。

准备工作:

1.安装tesseract-ocr

Java代码??收藏代码class="star">
  1. sudo?apt-get?install?tesseract??

2.安装imagemagick

Java代码??收藏代码
  1. sudo?apt-get?install?imagemagick??

3.安装rmagick

Java代码??收藏代码
  1. sudo?apt-get?remove?--purge?librmagick-ruby-doc?librmagick-ruby1.8??
  2. sudo?apt-get?install?libmagick9-dev?ruby1.8-dev??
  3. sudo?gem?install?rmagick??

先试一个简单的:

Ruby代码??收藏代码
  1. require?'rubygems'??
  2. require?'rtesseract'??
  3. img?=?RTesseract.new("tmp/test.jpg")??
  4. img.to_s.sub(/\s+$/,?"")?#?=>?"3R8Z"???

很成功,但这个太简单了。一般破解复杂点的验证码处理步骤是先用imagemagick灰度化,灰度反转,提高对比度,二值化等。然后再用ocr去识别。ocr识别黑白图片效果比较好些。

这个是人民网的验证码:

Ruby代码??收藏代码
  1. img?=?MiniMagick::Image.new("tmp/people.jpg")???
  2. img.colorspace("GRAY")#灰度化??
  3. image?=?RTesseract.new(img.path)??
  4. image.to_s.sub(/\s+$/,?"")?#?=>?"254369"???

?这个还是简单,再复杂一点的,这个是4399.com的验证码:

有黑色边框,有背景色,文字稍微扭曲。

?

Ruby代码??收藏代码
  1. img?=?MiniMagick::Image.new("tmp/4399.jpg")??
  2. img.crop("#{img[:width]?-?2}x#{img[:height]?-?2}+1+1")?#去掉边框(上下左右各1像素)??
  3. img.colorspace("GRAY")?#灰度化??
  4. img.monochrome?#二值化??
  5. image?=?RTesseract.new(img.path)?#ocr识别??
  6. image.to_s.sub(/\s+$/,?"")?#=>?"5692"???

?

像上面这样简单的识别率几乎能达到80%以上,扭曲太严重的识别率就很低了。有轻微噪点的就得自己写去噪算法了。。

?

还有一些验证码看起来很变态但是是纸老虎。像当当的。刷新了几次发现结果在1-20之间,选中一个数暴力破解每次也有1/20正确的概率。

还有139的:。答案就12种1-4A-Da-d。而且不区分大小写。选中一个字母每次有1/6的概率命中。

?

ps:研究破解验证码不是为了搞破坏。请勿跨省追捕。

?

当然还有人工ocr:优优云打码等 这些是付费的居多

  • 相关文章
发表评论
用户名: 匿名