625 B
625 B
挑战二十八:实现SHA-1密钥MAC
题目描述
找到你所用编程语言的SHA-1实现。
重要提醒
不要作弊。那样不会有效果。
不要使用你的语言已经提供的SHA-1实现(例如,不要在Ruby中使用"Digest"库,或调用OpenSSL;在Ruby中,你需要一个纯Ruby的SHA-1)。
实现要求
编写一个函数,使用密钥前缀MAC在密钥下对消息进行身份验证,这简单来说就是:
SHA1(key || message)
验证你不能在不破坏你生成的MAC的情况下篡改消息,并且你不能在不知道密钥的情况下生成新的MAC。