文件字符串加密解密的最简单的方法

在程序设计中,无论是代码、参数表、还是图片,除了那些开源的项目之外,

大都不希望别人能轻易看懂并识别。因此,对文件进行加密和解密就是一个重要的工作了。(字符串同理)

 

看似挺复杂的,其实,想要简单也可以。

复杂的如Base64算法的加密解密、encryptjs算法等,都会加大文件Size。

而最简单的,莫过于直接将文件用二进制(byte)异或或者反向处理,而文件大小不变!!。

 

处理基础:将原文件用二进制读取,存成byte数组

一:反向存储思路

将byte数组反序,再写入文件。

比如:”123456abcd”,存成:dcba654321,

如果文件中带有汉字,那么反序后,就会变成不可识别的字符,更不好识别了

这种方法的弊端在于,如果文本文件大部分是普通的字母数字,那么反序后很容易看出来是反转的。

 

二:单一加法处理

将byte数组的每个字节,都加上一个 数a,如果得数大于255,就减去256。

比如:“123456abcd”,加上32的话,就变成:”QRSTUV*****”

 

三:密钥加法处理

设置密钥为 key = “abcdedg”

将byte数组的每个字节,按顺序分别加上key的值,那么就更不容易被看出来了。

 

解密方法:

把加密算法反处理,就可以了。

 

特别记事:

1、lua 的将byte转成string 的方法,可以直接 用 string.sub(unpack(byteList)) 就可以,

但是unpack的最多参数在8000左右,所以,byteList的长度不能超过8000,

我们可以在n = 5000左右截断,当然,要注意,如果第n个字节是汉字字节,那么就要再取3个字节才能正式截断,

否则你的字符就乱码了。

 

2、cocos2dx的部分版本StringUtils::format的最大字节数是1024*100,即100k,超过部分将被丢弃

因此,如果我们的文件长度超过100k,就需要自己写字符串格式化方法(参照StringUtils::format,改造一下就可以)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RC4加密解密算法是一种流密码算法,也称为挖洞密码算法。它的特点是简单、高效。该算法是由 Ron Rivest 设计并于1987年被发布的。RC4算法使用一个变长的密钥,通常为8至256字节,并利用密钥生成一个256字节的S盒。该S盒用来生成一个密钥流,再将明文和密钥流进行异或运算,得到密文。 VB(Visual Basic)是一种非常流行的面向对象的程序设计语言,它可以用于编写各种应用程序,包括加密解密程序。在VB中使用RC4算法进行加密解密非常简单。 首先,用户需要在VB程序中输入密钥和明文。密钥可以是任意长度的字符串,明文可以是任意长度的文件或者字符串。 然后,利用RC4算法生成S盒,并利用S盒生成密钥流。VB提供了丰富的字符串处理函数,可以方便地完成这些操作。 接下来,将生成的密钥流和明文进行异或运算,得到密文。VB中提供了按位异或操作符,可以直接使用。 最后,将密文保存到文件或者输出到屏幕上。在VB中,可以使用文件操作函数或者控制台输出函数完成这个步骤。 解密过程与加密过程类似,区别在于将密文和密钥流进行异或得到明文。同样,VB中提供了相应的函数来完成解密操作。 总之,RC4加密解密算法是一种简单高效的流密码算法,VB作为一种流行的编程语言,可以很方便地实现RC4算法的加密解密功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值