Guids로 정말 쉽게 해결되는 문제가 있습니다.
특히 비밀번호 재설정 워크 플로의 경우 Guid 토큰을 사용자의 이메일로 보내고 토큰을 사용하여 비밀번호를 재설정하도록하고 싶습니다. guid는 독특하기 때문에 매우 안전하며 사람들에게 암호를 이메일로 보내므로 위험합니다.
Ruby 에는 Guid gem 이 하나 있습니다 . 그러나 그것은 꽤 오래된 것처럼 보이고 파일 시스템에 물건을 씁니다.
누구나 글로벌 고유 식별자를 생성 할 수있는 다른 보석을 알고 있습니까?
나는 단지 다음으로 넘어갈 수 있다는 것을 안다.
(0..16).to_a.map{|a| rand(16).to_s(16)}.join
그러나 실제로 적절한 GUID처럼 보이지는 않습니다 …
답변
Ruby 1.9부터 uuid 생성 기능이 내장되어 있습니다. SecureRandom.uuid
기능을 사용하십시오 .
예를 들면 다음과 같습니다.
require 'securerandom'
SecureRandom.uuid # => "96b0a57c-d9ae-453f-b56f-3b154eb10cda"
답변
>> require 'digest'
=> []
>> Digest::SHA1.hexdigest("some-random-string")[8..16]
=> "2ebe5597f"
>> SecureRandom.base64(8).gsub("/","_").gsub(/=+$/,"")
=> "AEWQyovNFo0"
>> rand(36**8).to_s(36)
=> "uur0cj2h"
답변
우리는 UUIDTools를 사용 하며 아무런 문제가 없습니다.
답변
UUIDTools는 다양한 유형의 UUID (또는 GUID를 호출하려는 경우 GUID)를 생성하기위한 간단한 라이브러리로 설계되었습니다. 가능할 때마다 RFC 4122를 준수합니다.
답변
Google은 다음 Ruby 라이브러리를 생성합니다.
http://raa.ruby-lang.org/project/ruby-guid/
또한 http://www.ruby-forum.com/topic/99262 에서 gem을 설치하고 ( gem uuid
명령 행에서 실행 하여 설치) 할 수 있다고 말합니다.
gem 'uuid'
puts UUID.new
새로운 UUID를 보려면 코드에서
(힌트 : guid ruby 를 Google에 표시했습니다 )
답변
적절한 mysql varchar 32 GUID를 만들려면
SecureRandom.uuid.gsub('-','').upcase
답변
Simone Carletti의 작은 업데이트 답변 :
SecureRandom.base64 (8) .gsub ( “/”, “_”). gsub (/ = + $ /, “”)
=> “AEWQyovNFo0”
다음으로 대체 할 수 있습니다.
SecureRandom.urlsafe_base64 (8)
