打印

密码存储软件分享

[复制链接]
836|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hgjinwei|  楼主 | 2016-2-25 13:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
鉴于网络账号很容易被盗号,编写一个密码存储软件,用于保存网络密码。

有了此软件,偶只要记住一个根密码(用于打开此软件),而实现每个网络账号使用独立的且随机的密码。

但是,使用此软件,偶得记得备份密码存储文件(软件下data\*.sbx文件)和根密码。
不然一旦文件丢失,或忘记根密码,就丢失了里面所存储的所有网络账号及密码了:funk:!!

友情提示(或叫免责声明):
任何人可以免费使用,并分享此软件,但作者不对因此造成的任何损失负责。



KeyBox-1.0.0-20150830.zip

831.82 KB

相关帖子

沙发
hgjinwei|  楼主 | 2016-2-25 13:27 | 只看该作者
忘了提醒一下,Demo应用的根密码是1234;
具体文件加密方式参考“changelog.txt”:
“HMAC-SHA256”的输入密钥为:
static __CONST char s_hmac_key[] = "\r\n"
                                   "\r\n"
                                   "献给老婆的28岁生日,祝老婆永远年轻漂亮!\r\n"
                                   "2015-8-30\r\n";
文件创建日期为32位整数,大端格式;
具体文件组织形式如下,如果知道根密钥,可手动解密"sbx"文件:
如果忘了根密钥,可以考虑暴力解"sbox_hdr_t",从而得到根密钥(至于要多久,参考标准AES256安全强度和SHA256逆运算可能性)
class CSBoxFile
{
public:
    typedef struct __sbox_list_t {
        uint8       next[4];                // 0x00-0x03: 下一盒子所在文件地址
        uint8       prev[4];                // 0x04-0x07: 上一盒子所在文件地址
    }sbox_list_t;
public:
    typedef struct __file_hdr_t {
        uint8       sign[3];                // 0x00-0x02: 文件标志:固定为sbx
        uint8       version;                // 0x03-0x03: 文件版本
        uint8       time_create[4];         // 0x04-0x07: 文件创建时间
        uint8       reserve[6];             // 0x08-0x0D: 保留空间(固定为0)
        uint8       desc_size[2];           // 0x0E-0x0F: 文件描述域字节数(random:mac)
                                            // ---------- 文件数据描述及访问日志(加密保存)
        uint8       random[8];              // 0x10-0x17: 随机填充值
        uint8       recycle_list[4];        // 0x18-0x1B: 安全数据盒回收地址
        uint8       recycle_count[4];       // 0x1C-0x1F: 安全数据盒回收计数器
        sbox_list_t sbox_list;              // 0x20-0x27: 安全数据盒链表根节点
        uint8       sbox_count[4];          // 0x28-0x2B: 安全数据盒计数器
        uint8       sbox_size[2];           // 0x2C-0x2D: 安全数据盒单元大小
        uint8       reserve2[1];            // 0x2E-0x2E: 保留空间(固定为0)
        uint8       log_index;              // 0x2F-0x2F: 文件访问记录索引
        uint8       time_access[12][4];     // 0x30-0x5F: 最近12次文件访问时间
        uint8       remark[1];              // ---------- 文件备注数据
    //  uint8       hash[32];               // ---------- hash256(file_hdr_t)
    }file_hdr_t;
public:
    typedef struct __sbox_hdr_t {
        sbox_list_t list;                   // 0x00-0x07: 安全数据盒子链表节点
        uint8       list_inv[8];            // 0x08-0x0F: 链表数据反值(校验值)
        uint8       seed[16];               // 0x10-0x1F: 本盒子数据密钥种子
        uint8       crc[2];                 // 0x20-0x21: 本盒子数据CRC16校验值(x^16 + x^15 + x^2 + 1)
        uint8       len[2];                 // 0x22-0x23: 本盒子数据有效长度
        uint8       data[1/*len*/];         // 0x24- END: 本盒子数据存储空间
    }sbox_hdr_t;
}

使用特权

评论回复
板凳
zby422| | 2016-2-25 15:48 | 只看该作者
hgjinwei 发表于 2016-2-25 13:27
忘了提醒一下,Demo应用的根密码是1234;
具体文件加密方式参考“changelog.txt”:
“HMAC-SHA256”的输入 ...

good idea!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

760

帖子

1

粉丝