简单的文件加密示例

加密规则:  1. 每个数字(int),对应一个字母。

                 2. 32 位 int,其中最高 5 位为偏移量,剩余的位为偏移后的字节信息。
                 3. 存储文件时不再直接存储数字,而是按字节存储二进制信息,32 位 int 数字按照字节存储,存储顺序从低到高,即 intel 硬件的“小头”方式。

 

举例:字母A,编码是65,二进制位是01000001,扩展为32位后变成
         0000 0000 0000 0000 0000 0000 0100 0001   (0x41)
         设偏移量为5,那么偏移后的32位信息是:
         0000 0000 0000 0000 0000 1000 0010 0000   (0x820)
         最高5位用于存储偏移量信息5(二进制位0101)
         0010 1000 0000 0000 0000 1000 0010 0000   (0x28000820)

 

存储文件时顺序:
  1. 0010 0000(最低字节)
  2. 0000 1000(次低字节)
  3. 0000 0000(次高字节)
  4. 0010 1000(最高字节)


对于这个加密后数字,在文件中看到的二进制位是:
  0010 0000   0000 1000   0000 0000   0100 1000

 

注意:对于每个int,其偏移量是随机生成的,不一定是5,存储在最高的5位中。

 

以下是加密代码:

 

以下是解密代码:

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值