首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >对文本文件进行加密/解密的简单算法

对文本文件进行加密/解密的简单算法
EN

Cryptography用户
提问于 2015-06-10 19:09:23
回答 2查看 21.9K关注 0票数 4

我需要用一种语言编写第一个程序,将数据保存在文本文件中,然后用第二种语言编写第二个程序来解密该文件。这两种语言不包括任何密码库,所以我只能靠自己了。

有人能推荐,指点我,或者总结一个简单的算法(伪代码)来提供某种程度的基本加密吗?

我在这方面的经验不多,但是如果你能用伪代码进行清晰的总结,我就可以实现它(不要假设事先知道)。

它不必是防弹的,而只是阻止用户理解文本文件的东西。比简单的字符替换(1到1)更安全的东西,比如生成用于XOR或类似复杂性的随机字符串的键。我不知道从哪里开始。

EN

回答 2

Cryptography用户

回答已采纳

发布于 2015-06-11 09:30:46

我的建议是使用流密码。

首先,它很容易实现,因为您不必考虑将其划分为块、填充等等。

其次,流密码的思想非常简单:从私钥中生成一个伪随机位序列。然后用纯文本来异或这个序列。您只需要编写生成的代码,其余的都是基本的。

最后,有非常简单的流密码,例如RC4 http://en.wikipedia.org/wiki/RC4;另一个例子是Salsa20 http://en.wikipedia.org/wiki/Salsa20

当我说“简单”时,我指的不仅仅是代码行的数量,还包括调试/缺陷搜索的容易程度。

票数 7
EN

Cryptography用户

发布于 2015-06-11 13:23:21

另一种选择是:讨论文本文件。如果希望加密的文件也是文本文件,而不是字节,则可以考虑使用Vigenère密码。有了一个长的随机生成的密钥,它就可以相当安全。如果密钥与纯文本文件一样长,并且只使用一次,那么它将成为一次Pad的形式。

如果需要基于字节的加密,但仍然希望加密文件中的文本,则使用Base64将字节编码为文本。当然,在解密之前,您需要将Base64解码回字节。

票数 2
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/26232

复制
相关文章
根据用户输入的行数,打印出相应行数的直角三角形
代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>输出指定行数的* 形成直角三角形</title> </head> <body> <script> // 输出指定行数的* ,形成直角三角形 var row = prompt("请输入需要打印的行数"); for (var i = 1; i <= row; i++) { for (var j = 1; j <= i; j++) {
是阿超
2021/10/15
8530
JS根据列表排列对象数组
] const sortInfo = ['f','c','b'] nodeData_.sort((a, b) => {
小仙女闯运维
2020/09/23
4.5K0
根据rpt文件打印报表
不用一个个地导入rpt文件,再去写固定的代码,而是每次动态的根据指定的名称去加载报表和打印   if(Session["PrintXml"]!=null)    {     ReportDocument rd=new ReportDocument();     rd.Load (this.Server.MapPath("\\Flow\\FlowForm\\rpt")+"\\"+Session["PrintFormName"]+".rpt");     rd.SetDataSource(XmlPage.Get
用户1075292
2018/01/23
1.3K0
WEB打印-根据需求打印局部源码记录
这次的需求可能就比较简单了,就是实现web端的打印,但是是根据需求打印,而不是直接打印全部
何处锦绣不灰堆
2020/05/29
8500
WEB打印-根据需求打印局部源码记录
用户输入
大多数程序都在解决最终用户问题,为此通常需要从用户那里获取一些信息。在程序需要一个名字时,你需要提示用户输入该名字;程序需要一个名字时,你需要提示用户输入一系列名字。
狼啸风云
2019/01/18
9700
扫码打印新的实现方法(打印时输入)
打印时输入的是Label mx 条码软件的文字、条码、二维码共有属性,实现扫描一个条码,打印一个新标签,常用于重新贴码的包装箱或产品贴。下图为文字、条码、二维码的“打印时输入”属性设置:
用户6708611
2023/07/05
4680
扫码打印新的实现方法(打印时输入)
SAP 根据PO查找对应的打印FORM
正文部分 1、TCODE:NACE进入 找到 输出控制条件对应的应用程序名字,如下图: 2、选中应用程序后,点击上面菜单里的输出类型,如下图
matinal
2020/11/27
7620
Vue根据数据字段大小进行排列
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <script type="text/javascript" src="http://cdn.suol
明知山
2020/09/03
8370
打印不重复的字符串全排列(递归)
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 
砖业洋__
2023/05/06
3970
打印不重复的字符串全排列(递归)
Dynamic ReLU:根据输入动态确定的ReLU
这是我最近才看到的一篇论文,它提出了动态ReLU (Dynamic ReLU, DY-ReLU),可以将全局上下文编码为超函数,并相应地调整分段线性激活函数。与传统的ReLU相比,DY-ReLU的额外计算成本可以忽略不计,但表示能力明显增强,并且实现简单,所以可以非常简单的对我们现有的模型进行修改。
deephub
2023/08/30
1850
Dynamic ReLU:根据输入动态确定的ReLU
java 输出字符串的所有排列_Java程序打印字符串的所有排列
static void print_permutations(String my_str,String my_ans){
用户7886150
2021/04/29
1.1K0
Angular 2 用户输入
等号左边的 (click) 表示把该按钮的点击事件作为绑定目标 。 等号右边,引号中的文本是一个 模板语句
陈不成i
2021/07/26
1.7K0
Python之用户输入
大多数程序都旨在解决最终用户的问题,为此,需要从用户那里获取一些信息。函数input()让程序暂停运行,等待用户输入一些文本。
py3study
2020/01/06
1.2K0
python 接收用户的输入
None是一个特殊的常量。 None和False不同。 None不是0。 None不是空字符串。 None和任何其他的数据类型比较永远返回False。 None有自己的数据类型NoneType。 你可以将None复制给任何变量,但是你不能创建其他NoneType对象。
py3study
2020/01/09
2K0
python 接收用户的输入
输入数字n然后输出0到n的全排列
给定一个正整数n, 则输出0到n的所有排列 输入:2 输出:012 021 102 120 201 210 代码: private static Set<String> result = new HashSet<String>(); public static void allSort(int number) { if (number < 0) { return; } String str=""; for (int i = 0;i <= number; i
用户6055494
2019/10/21
1.1K0
python用户输入(三)
name = "Li QW" #定义变量 fname = name  #fname等于name变量产生的值 print("My name is " , name,fname) name = "study"
py3study
2020/01/13
1K0
android adb logcat 根据包名打印日志
android根据包名打印日志 Linux or Mac: adb logcat | grep -F "`adb shell ps | grep com.abc.package | cut -c10-15`" windows: adb logcat | findstr com.abc.package adb logcat -v time | find “XXX” >D:\myLog2.txt "XXX"可以用包名,或者关键字去代替。
tea9
2022/07/16
2.2K0
Shell - 根据用户名查询该用户的相关信息
小小工匠
2023/09/01
1750
Shell - 根据用户名查询该用户的相关信息
点击加载更多

相似问题

根据用户输入的数字重新排列文本输入字段

20

如何根据用户输入打印if语句?

30

根据用户输入打印回算

24

根据用户输入打印不同的句子

20

根据用户的输入,打印正确的事件

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文