Encryption 使用SHA1进行加密

Encryption 使用SHA1进行加密,encryption,sha1,hmacsha1,Encryption,Sha1,Hmacsha1,我正在开发一个大型应用程序,当数据在不同大陆的两台机器之间传输时,我需要加密。我从未从事过加密工作。我想要一个简单的加密,它可以在PHP/Ruby/Python中处理,没有任何依赖项 所以我决定使用HMAC SHA1 $pad=hash_hmac("sha1","The quick brown....","mykey"); 这是我在互联网上研究后发现的 如果有人不知道密钥,解密有多难?还有,还有其他的选择吗 更新-感谢所有回复。问题已解决。即使您知道密钥,也无法解密。HMAC SHA1是一种密

我正在开发一个大型应用程序,当数据在不同大陆的两台机器之间传输时,我需要加密。我从未从事过加密工作。我想要一个简单的加密,它可以在PHP/Ruby/Python中处理,没有任何依赖项

所以我决定使用HMAC SHA1

$pad=hash_hmac("sha1","The quick brown....","mykey");
这是我在互联网上研究后发现的

如果有人不知道密钥,解密有多难?还有,还有其他的选择吗


更新-感谢所有回复。问题已解决。

即使您知道密钥,也无法解密。HMAC SHA1是一种密钥哈希算法,而不是加密算法

散列是一个加密单向函数,它总是生成相同长度的值(我认为SHA1是128位),而不管输入的长度如何。散列的要点是,给定输出值,在计算上不可能找到一个输入值来生成该输出。密钥哈希用于防止彩虹表攻击。即使知道密钥,也无法反转哈希过程


对于加密,您需要查看AES。

即使您知道密钥,也无法对其进行解密。HMAC SHA1是一种密钥哈希算法,而不是加密算法

散列是一个加密单向函数,它总是生成相同长度的值(我认为SHA1是128位),而不管输入的长度如何。散列的要点是,给定输出值,在计算上不可能找到一个输入值来生成该输出。密钥哈希用于防止彩虹表攻击。即使知道密钥,也无法反转哈希过程


对于加密,您希望查看AES。

正如我所说,这是一个哈希,因此不是加密/解密问题。如果您想实现一个简单的加密算法,我建议您研究XOR加密。如果密钥足够长(比消息长),并且您的密钥共享策略具有适当的安全性,则这是一次性pad;否则,它可能会被统计分析破坏。

正如我所说,这是一个散列,所以不是加密/解密问题。如果您想实现一个简单的加密算法,我建议您研究XOR加密。如果密钥足够长(比消息长),并且您的密钥共享策略具有适当的安全性,则这是一次性pad;否则,它可能会被统计分析破坏。

SHA1是一个单向散列函数,根据定义,任何人都无法解密它。问题是,如果你有一个散列到H的明文T,那么找到另一个也散列到H的T有多难

根据维基百科,对于SHA1来说,最著名的暴力攻击需要2^51次浏览才能找到匹配的纯文本

如果您需要实际的加密,您可以反转该过程,您应该看看AES256

见:


关于这一点的一般性讨论。

SHA1是一个单向散列函数,根据定义,任何人都无法解密它。问题是,如果你有一个散列到H的明文T,那么找到另一个也散列到H的T有多难

根据维基百科,对于SHA1来说,最著名的暴力攻击需要2^51次浏览才能找到匹配的纯文本

如果您需要实际的加密,您可以反转该过程,您应该看看AES256

见:

如Andrew所说,SHA1是一种哈希算法,不能用于加密(因为您无法获取原始值)。它生成的摘要可用于验证数据的完整性

HMAC是接受密钥的哈希算法之上的构造。但是,它不是用于加密(同样无法解密),而是允许您对数据进行签名,即使用相同的密钥,您可以确保数据在传输过程中未被篡改

对于加密,您应该考虑使用AES或HTTPS(如果适用于您的应用程序,HTTPS将处理比您想知道的更多的问题;-)

就像Andrew说的SHA1是一种哈希算法,不能用于加密(因为您无法获取原始值)。它生成的摘要可用于验证数据的完整性

HMAC是接受密钥的哈希算法之上的构造。但是,它不是用于加密(同样无法解密),而是允许您对数据进行签名,即使用相同的密钥,您可以确保数据在传输过程中未被篡改


对于加密,您应该考虑使用AES或HTTPS(如果适用于您的应用程序,HTTPS将处理比您想知道的更多的问题;-)

SHA-1和MD-5都是单向散列算法。 它们只是生成一个很长的字符串。每个字符串在执行这些函数时都会产生一个无法保留的长字符串

他们远离加密


如果您正在寻找加密算法,请选择AES(高级加密标准)、DES(数据加密标准)算法。

SHA-1、MD-5都是单向散列算法。 它们只是生成一个很长的字符串。每个字符串在执行这些函数时都会产生一个无法保留的长字符串

他们远离加密


如果您正在寻找加密算法,请选择AES(高级加密标准)、DES(数据加密标准)算法。

这是一个散列,而不是密码:如果不考虑所有可能性并检查它们,您无法解密它!这是一个散列,而不是密码:你不能解密它不经过所有的可能性和检查!SHA1的长度为160位(无论输入大小),这要感谢poupou。我知道我应该查一下。SHA1有160位长(不管输入大小),谢谢poupou。我知道