第二个选项更安全。
您的方法,不提供任何消息完整性。这意味着攻击者可以修改密文的一部分并改变纯文本解密。只要他们不修改任何会改变您的32位静态签名的内容,那么您就会相信它。第二种方法上的HMAC提供了消息完整性。
通过散列密钥8192次,它为某人试图违反密钥而添加了额外的计算步骤。假设用户会选择基于字典的密码。使用您的方法,攻击者必须执行 SHA256(someguess)
然后尝试解密。但是,使用PolarSSL版本,他们必须计算 SHA256(SHA256(SHA256...(SHA256(someguess)))
8192次。这只会减慢攻击者的速度,但这可能已经足够了(目前)。
为了获得价值,请使用现有库。密码学很难,容易出现微妙的错误。