红联Linux门户
Linux帮助

关于二进制文件的读写操作

发布时间:2010-09-02 23:43:45来源:红联作者:renzhe19880626
可能这个问题比较白痴,高手们莫怪!!!

我的问题是在linux下怎样将 字符串 转变为二进制 存储到文件中,举个例子,假设我想自动登录某个系统,需要输入账号和密码,我想把账号和密码以二进制存储到文本文件中,(当然不想让别人简单的看到里面的内容了)然后可以从这个文件中读取账号和密码用于登录系统。linux shell脚本可以实现这个功能吗?用python.write()貌似不可以将字符串以二进制形式存储,用Python的struct倒是可以实现将整数二进制化然后存入文本中,但是无法将字符串二进制化.
例如:
a="abc"
b=struct.pack("3s",a)
print b
得到的仍然是abc
(也许此处我对struct的理解有问题??请高手指点)
后来我用c++实现可以将字符串二进制化存储,但是在linux下 用普通命令如cat ,more等查看c++生成的二进制文件,看到的内容就是原先存储的字符串,仍然可以看到账号和密码等信息,这事怎么回事??
文章评论

共有 4 条评论

  1. renzhe19880626 于 2010-09-04 11:08:01发表:

    除了加密,还有别的方法吗?

  2. yuan1824 于 2010-09-03 09:33:24发表:

    这个问题听起来,不简单呀,菜鸟飞过!!

  3. shenhao0129 于 2010-09-03 09:08:50发表:

    存储的时候都是2进制的啊,但是你显示的时候是用什么方式来显示的这有很大的关系的

  4. deepwhite 于 2010-09-03 08:56:09发表:

    [i=s] 本帖最后由 deepwhite 于 2010-9-3 08:57 编辑 [/i]

    如果字符串本身就是 ASCII 码的话,很多时候写入二进制文件后还是可以直接看出来。

    比较简单的一个实现方法是加密,例如用 python 的话,可以找一些加密算法,并把密钥写入 python 脚本中,然后用这个加密算法对Linux用户的密码加密,随后把加密后的密码再写入文件,这样写入后的文件虽然仍然能通过 cat 来查看,但是看到的是加密后的东西,不是Linux的用户的密码。

    自己想要得到真正密码的时候,用编码在 python 脚本中的加密算法和密钥解密即可。

    你可以向需要自动登陆的机器提供 pyc 文件,这样脚本中的密钥就不会被人发现了。