`
canofy
  • 浏览: 828804 次
  • 性别: Icon_minigender_1
  • 来自: 北京、四川
社区版块
存档分类
最新评论

ruby的生成随机验证码

    博客分类:
  • ruby
阅读更多
网上找的使用ruby生成的随机验证码图片

require 'rubygems'
require 'RMagick'

class ValidationImage
  include Magick
  attr_reader :code, :image
  Jiggle = 15
  Wobble = 15

  def initialize(len = 4)
    chars = ('a'..'z').to_a + ('0'..'9').to_a
    rand_chars = []
    1.upto(len) {rand_chars.push(chars[rand(chars.length)])}#生成验证码

    background_type = "netscape:" #彩条 "granite:" #花岗岩 "xc:#EDF7E7" #指定背景色 "null:" #纯黑
    background = Magick::ImageList.new(background_type)  #背景画布

    canvas = Magick::ImageList.new  #新建一个画布
    canvas.new_image(32*len, 30, Magick::TextureFill.new(background)) #把背景加到画布上

    gc = Magick::Draw.new  #新建一个画笔
    gc.font_family = 'times'
    gc.pointsize = 20
    cur = 10

    #在画布上把验证码写上去?
    rand_chars.each{|c|
      gc.annotate(canvas, 0, 0, cur, 15+rand(Jiggle), c){
        self.rotation = rand(10) > 5 ? rand(Wobble) : -rand(Wobble)
        self.font_weight = rand(10) > 5 ?  NormalWeight : BoldWeight
        self.fill = 'green'
      }
      cur += 30
    }

    @code = rand_chars.to_s
    @image = canvas.to_blob{
      self.format="GIF"
    }
  end
end


v=ValidationImage.new
#生成图片
filename= File.new('c:\1.jpg',"w+")
filename.binmode

puts v.code

filename.puts v.image
filename.puts v.code

分享到:
评论

相关推荐

    rails实现验证码实例

    1. **生成随机字符串**:在Ruby中,可以使用`SecureRandom`库来生成随机字符串。例如,生成4位数字的验证码: ```ruby SecureRandom.random_number(10000).to_s.rjust(4, '0') ``` 2. **绘制验证码图像**:使用...

    Go-Packagecaptcha为Macaron提供验证码服务

    1. **生成随机验证码**:该包可以生成各种类型的随机验证码,包括数字、字母或者两者的组合,还可以自定义长度和样式,以确保验证码的复杂性和安全性。 2. **图像生成**:`Package captcha`能够生成高质量的验证码...

    rmagick-2.3.0-x86-mswin32.gem

    1. 生成随机文本。 2. 创建一个新的图像对象。 3. 在图像上画出随机文本,应用扭曲和变形以增加识别难度。 4. 添加噪声或其他干扰元素。 5. 将图像保存到磁盘供用户识别。 总的来说,`rmagick-2.3.0-x86-mswin32....

    Laravel开发-laravel

    1. 生成验证码:在用户请求验证时,服务器生成一个随机的验证码,并存储在会话或数据库中。 2. 发送验证码:使用Kavenegar API发送短信,将验证码通过短信发送到用户手机。 3. 用户输入验证:用户收到验证码后输入,...

    Rails实现的简历系统

    在Rails中,可以使用第三方库如`gem 'recaptcha'`来集成谷歌的reCAPTCHA服务,或者创建自定义的验证码生成器,通过随机字符或图片实现。 4. **数据查询**:Rails的ActiveRecord层提供了强大的查询接口,如`where`、...

    英语在先考试系统的油画

    6. **试题库管理**:系统应支持试题的创建、编辑、分类和随机抽取,可能需要用到算法来实现随机组合试题。 7. **自动化评分**:对于客观题,系统可以自动批改;对于主观题,可能需要AI辅助评分或人工批阅功能。 8....

    自动注册Hotmail:自动注册Hotmail工具

    有时,这些数据可能来自预定义的列表或随机生成器。 3. 验证码识别:许多网站使用验证码来防止自动化注册,因此工具可能包含OCR技术或者集成第三方验证码解决服务来自动识别和输入验证码。 4. 邮箱验证:Hotmail/...

    JAVA上百实例源码以及开源项目源代码

    凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码) 15个目标文件 摘要:Java源码,初学实例,基于EJB的真实...

Global site tag (gtag.js) - Google Analytics