Digest::Class 类

此模块是摘要实现类的基类。

公共类方法

base64digest(str, *args) 点击切换源代码

返回给定 string 的 base64 编码哈希值。返回值用“=”正确填充,不包含换行符。

# File ext/digest/lib/digest.rb, line 55
def self.base64digest(str, *args)
  [digest(str, *args)].pack('m0')
end
Digest::Class.bubblebabble(string, ...) → hash_string 点击切换源代码

返回给定 string 的 BubbleBabble 编码哈希值。

static VALUE
rb_digest_class_s_bubblebabble(int argc, VALUE *argv, VALUE klass)
{
    return bubblebabble_str_new(rb_funcallv(klass, id_digest, argc, argv));
}
Digest::Class.digest(string, *parameters) → hash_string 点击切换源代码

返回给定 string 的哈希值。这等同于 Digest::Class.new(*parameters).digest(string),其中额外的 parameters(如果有)会传递给构造函数,而 string 会传递给 digest()

static VALUE
rb_digest_class_s_digest(int argc, VALUE *argv, VALUE klass)
{
    VALUE str;
    volatile VALUE obj;

    if (argc < 1) {
        rb_raise(rb_eArgError, "no data given");
    }

    str = *argv++;
    argc--;

    StringValue(str);

    obj = rb_obj_alloc(klass);
    rb_obj_call_init(obj, argc, argv);

    return rb_funcall(obj, id_digest, 1, str);
}
file(name, *args) 点击切换源代码

创建一个摘要对象并读取给定的文件 name。可选参数会传递给摘要类的构造函数。

p Digest::SHA256.file("X11R6.8.2-src.tar.bz2").hexdigest
# => "f02e3c85572dc9ad7cb77c2a638e3be24cc1b5bea9fdbb0b0299c9668475c534"
# File ext/digest/lib/digest.rb, line 48
def self.file(name, *args)
  new(*args).file(name)
end
Digest::Class.hexdigest(string[, ...]) → hash_string 点击切换源代码

返回给定 string 的十六进制编码哈希值。这几乎等同于 Digest.hexencode(Digest::Class.new(*parameters).digest(string))。

static VALUE
rb_digest_class_s_hexdigest(int argc, VALUE *argv, VALUE klass)
{
    return hexencode_str_new(rb_funcallv(klass, id_digest, argc, argv));
}