`
jsntghf
  • 浏览: 2564300 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

rails中的SecureRandom

阅读更多

youtube之类的视频网站的11位随机id是如何生成的?类似于:http://www.youtube.com/watch?v=fY4Epc2XSGc 中的fY4Epc2XSGc

很多人都是自己实现安全随机数,类似以下的代码:

require 'digest/sha1'

def generate_temporary_password
    self.password = Digest::SHA1.hexdigest(Time.now.to_s.split(//).sort_by{rand}.join)
end

 

其实,rails已经为你做好了这一切。

你可以像这样去使用它:

require 'active_support/secure_random'

ActiveSupport::SecureRandom.hex(10)
=> "8a2cf0a838e64f6f85d1"
ActiveSupport::SecureRandom.base64(10)
=> "fUL81hGd77YyGg=="

 

分享到:
评论

相关推荐

    rails实现验证码实例

    在Ruby on Rails(Rails)框架中,验证码是一种常见的安全机制,用于防止自动化脚本或机器人进行恶意操作,如批量注册、刷票等。本实例将详细介绍如何在Rails应用中实现一个简单的图形验证码。 首先,我们需要一个...

    Rails的现代加密-Ruby开发

    有关使用Rails安装保护敏感数据的更多信息,请查看这篇文章,将此行添加到应用程序的Gemfile中:gem'lockbox'密钥生成生成加密密钥SecureRandom.hex(32)将密钥与其他秘密一起存储。 这通常是Rails凭证或环境变量...

    test_track_rails_client:TestTrack的Ruby on Rails客户端

    安装安装gem: # Gemfilegem 'test_track_rails_client'在TestTrack服务器中创建一个应用在每种环境(包括本地环境)中,都通过TestTrack服务器rails控制台剪切App记录: > App . create! ( name : "[myapp]" , auth...

    Rails实现字段加密存储

    ActiveSupport::MessageEncryptor 是 Rails 基于 openssl 封装实现的一个类,可用于对一个对象进行加密、解密操作。例如: salt = SecureRandom.random_bytes(64) key = ActiveSupport::KeyGenerator.new('password...

    Nygma:哥tanh自己的Nygma先生,一个Rails 4.2加密器

    将Nygma添加到您的Gemfile中,并将一个初始化程序添加到您的Rails应用中,并使用SecureRandom.hex(40)和SecureRandom.random_bytes(64)生成密钥和盐。 最好通过环境密钥将它们传递给您的应用程序,如下所示。 # ...

    slackr:一个通过Rails,PostgreSQL,React和Redux以及通过ActionCableRedis配置的Websocket构建的实时消息传递应用程序

    Slackr是由Rails和React / Redux开发的Slack的Web应用程序克隆。 功能与实现 用户认证 slackr允许用户使用BCrypt实施安全地登录/注销,以根据用户密码生成加盐的哈希值,因为此类用户的密码未存储在数据库中。 此外...

    has_secure_token:在 ruby​​ on rails 中为任何模型创建唯一的随机标记。 ActiveRecord 的反向移植

    HasSecureToken 提供了一种简单的方法来为 ruby​​ on rails 中的任何模型生成唯一的随机令牌。 SecureRandom::base58用于生成 24 个字符的唯一标记,因此极不可能发生冲突。 注意:如果您担心可能发生的冲突,则...

    在不使用Devise的情况下在RubyonRails中实现API密钥.zip

    在Ruby on Rails框架中,开发API时通常会使用如Devise这样的身份验证库来处理用户认证。然而,有时我们可能需要自己实现API密钥的管理,以满足特定的需求或者避免引入额外的依赖。本教程将深入讲解如何在不使用...

    cookie:用 ruby​​ 实现的 HTTP Cookie

    不过,在更复杂的Web应用中,我们通常会使用如`Sinatra`或`Rails`这样的框架,它们提供了更加高级和便捷的Cookie管理。 在Ruby的`Sinatra`框架中,我们可以方便地设置和读取Cookie。例如,要在响应中设置一个名为`...

    spotify_clone:现场演示

    特征安全: HTTP cookie中使用BCrypt::Password密码哈希算法和SecureRandom.base64会话密钥的自定义身份验证可搜索:可从该应用程序中的任何视图搜索PostgreSQL数据库,其中包含令人惊叹的艺术家,专辑,播放列表和...

    staccato:Ruby库,用于对服务器端进行跟踪,以跟踪正式的Google Analytics(分析)Measurement Protocol

    如果您使用的是Rails并想使用Staccato,那么我们可以为您提供帮助! 安装 将此行添加到您的应用程序的Gemfile中: gem 'staccato' 然后执行: $ bundle 或自己安装为: $ gem install staccato 用法 tracker = ...

    hekla:用于临时平台的响应式博客引擎

    通过在themes下创建新目录,支持同一存储库中的多个“博客”。 这些仍然需要单独部署,但可以共享一个公共代码库。 不太容易受到频繁的安全漏洞或过时的影响(即与我以前的版本不同,它不是用 Rails 编写的)。部署...

Global site tag (gtag.js) - Google Analytics