我使用IP,USERID,DATETIME在我的网络应用中创建安全代码。我想知道有关如何创建安全代码的更多信息,例如:
string str="192.168.0.1,myid,20121227,12345";
然后我加密一个字符串:
string strC=encrypt(str);
然后字符串strC
是我的安全码。
答案 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。
那么......“安全代码”是什么意思?