Sha256: fd4c6f39b11bb45047da6a2e85764f0ca12aa806056509d182fd53a74cf800f2

Contents?: true

Size: 606 Bytes

Versions: 3

Compression:

Stored size: 606 Bytes

Contents

require 'digest'
require "digest-trip/version"

require 'nkf'
require 'digest/sha1'
require 'base64'

module Digest
  class Trip < Digest::Class
    def reset
    end

    def update key
      @key = key
    end

    def finish
      key = NKF.nkf '-sxm0', @key

      if key.bytesize >= 12
        hash = Base64.encode64 Digest::SHA1.digest(key)
        hash[0, 12].gsub '+', '.'
      else
        salt = (key + "H.")[1, 2]
        salt = salt.gsub %r"[^\.-z]", "."
        salt = salt.tr ":;<=>?@[\\]^_`", "ABCDEFGabcdef"

        hash = key.crypt salt
        hash[-10, 10]
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
digest-trip-0.5.1 lib/digest/trip.rb
digest-trip-0.5.0 lib/digest/trip.rb
digest-trip-0.0.4 lib/digest/trip.rb