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