@@ -0,0 +1,1012 @@
+import hashlib%0A%0A@add_cmd(%22md5%22, min_args=1)%0Adef md5(bot, irc, event, args):%0A    return hashlib.md5(bytes(%22 %22.join(args))).hexdigest()%0A%0A%0A@add_cmd(%22sha1%22, min_args=1)%0Adef sha1(bot, event, irc, args):%0A    return hashlib.sha1(%22 %22.join(args)).hexdigest()%0A%0A%0A@add_cmd(%22sha256%22, min_args=1)%0Adef sha256(bot, event, irc, args):%0A    return hashlib.sha256(%22 %22.join(args)).hexdigest()%0A%0A%0A@add_cmd(%22sha384%22, min_args=1)%0Adef sha384(bot, event, irc, args):%0A    return hashlib.sha384(%22 %22.join(args)).hexdigest()%0A%0A%0A@add_cmd(%22sha512%22, min_args=1)%0Adef sha512(bot, event, irc, args):%0A    return hashlib.sha512(%22 %22.join(args)).hexdigest()%0A%0A%0A@add_cmd(%22hash%22, min_args=2)%0Adef hash(bot, irc, event, args):%0A    %22%22%22%3Chashing mechanism%3E %3Cstring to hash%3E%0A    Return a hexadecimal digest of the hashed provided string%22%22%22%0A    if args%5B0%5D in haslib.available_hashes:%0A        func = getattr(hashlib, args%5B0%5D)%0A        irc.reply(event, func(%22 %22.join(args%5B1:%5D)).hexdigest())%0A    else:%0A        irc.reply(event, %22Unknown hashing mechanism: %22 + args%5B0%5D)%0A

Add new hash plugin