XML密码混淆

时间:2010-02-10 16:13:41

标签: java xml obfuscation

有没有办法混淆部分XML属性?

我想加密user =和password =以下xml属性的一部分,因此没有人查看该文件可以看到密码。有没有办法用Java DOM做到这一点?

<connectionString="Data Source=Winserver\sqlexpress;Initial Catalog=haven;Integrated Security=false;user=admin;password="/>

如果您可以使用Java代码回答,那就太棒了。

谢谢!

4 个答案:

答案 0 :(得分:1)

我不是一个java人。但我可以帮助你完成一些程序。

  1. 查找一些加密算法和base64编码器
  2. 使用程序只知道的静态种子加密密码,并对其进行base64编码。
  3. 将base64编码的字符串放在password=
  4. 旁边

    用于解码

    1. 解析密码的base64编码部分。
    2. 使用base64解码密码。
    3. 用你的种子解密密码。
    4. 将base64编码的字符串替换为已解码/解密的密码。
    5. 您可以尝试AES,TwoFish等加密算法。

答案 1 :(得分:0)

可以加密XML数据。

有关详细信息,请查看http://www.w3.org/Encryption/2001/

我想在Java中有很多方法可以做到这一点,依赖于你已经建立的XML Api支持它。您可能还想看看java数字签名api http://java.sun.com/developer/technicalArticles/xml/dig_signature_api/

答案 2 :(得分:0)

我认为保持ASP.NET应用程序的连接字符串私有的常用方法是将连接字符串放在Web服务器的注册表中,然后只在ASP网站中加载该值。

但即使您反对注册表或想要一个跨平台的方法,我认为最好的办法是将字符串放在外人无法阅读的地方。这可能在根网站目录之外(如果这是一个网站),或提示用户(根本不存储它),或在其他地方隐藏它。在Linux机器上,您甚至可以chmod 700,以限制只能访问运行Java程序的用户。

答案 3 :(得分:0)

您可以查看Silencio库,您可以使用该库从XML文件中删除或散列节点。您可以决定应该转换哪些节点(您可能只需要对某些节点进行模糊处理)以及应该应用的更改(清除内容,散列或自定义)