如何为网络创建识别码或密钥?

时间:2011-12-28 06:06:13

标签: security encryption

我使用IP,USERID,DATETIME在我的网络应用中创建安全代码。我想知道有关如何创建安全代码的更多信息,例如:

string str="192.168.0.1,myid,20121227,12345";

然后我加密一个字符串:

string strC=encrypt(str);

然后字符串strC是我的安全码。

2 个答案:

答案 0 :(得分:0)

一般情况下,您使用的是良好的解决方案。有时我们需要了解密钥的内容,因此您使用了加密方法(因为每种加密方法都有解密方法) 有时候我们只需要一个键就可以将它分配给我们的用户,所以在这些情况下我们可以使用像hash这样的单向算法。最后我说你使用了一个很好的方法,但我有另一个提供你的解决方案(也许你保留了这个优惠)在你的脑海里)。

更改加密/解密方法,如下所示:

private string Encrypt (string str)
{

//Encryption str
//...


return HttpUtility.HtmlEncode(EncryptedStr);

}


private string Decrypt (string str)
{

str = HttpUtility.HtmlDecode(str);

//Decryption str
//...

return DecryptedStr;

}

这将改进您的解决方案,通过这些方法,您可以在查询字符串变量中使用您的密钥

注意,阿里

答案 1 :(得分:0)

如果,通过“安全代码”,你的意思是“认证标识符”,那么你甚至不需要加密任何东西;你真正想要的是Message Authentication Code。这是一种完整性保留机制,它告诉您“用户所呈现的标识符是我创建的标识符”。

如果,通过“安全代码”,你的意思是“会话密钥”,那么再次没有必要加密:获取有关会话的一些信息并将其与大量随机数据相结合(例如来自java.security.SecureRandom) )使用加密哈希函数。这将创建一个既独特又不可思议的加密密钥。更好的是像Diffie-Hellman这样的正确的密钥交换算法,除非你需要担心中间人攻击,在这种情况下你需要某种形式的authenticated key exchange

那么......“安全代码”是什么意思?