【问题标题】:How to store encryption key on DOTENV file?如何在 DOTENV 文件中存储加密密钥?
【发布时间】:2021-10-03 17:57:00
【问题描述】:

所以我制作了一个加密给定字符串的程序,
加密很简单,将ASCII 字符值从 32 到 126 存储在 DOTENV 文件中,一个是存储从 32 到 126 的值的普通字符串,另一个是存储普通字符串的混洗值的字符串


Given Data 不是原始数据而是样本数据

数据存储在 DOTENV 文件中:-

normalValue = " !\"#$%&'()*+,-./0123456789:;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~"

shuffledValue = "GKR6]^|hdv?\Icfs,TBrnt:C0F;p\"SA=U#l .&xXgZmq2Ozoi/_Nye[J{LW~1)`YHE-Qk'a !M*}bPj8D(9w5+3@"


正如你们所看到的,数据存储在双引号中,因为 DOTENV 不支持没有双引号的空格,并且因为从 32 到 126 的 ASCII 值在两个列表中都包含双引号,所以我必须添加反斜杠作为转义序列,因此字符串在 DOTENV 中注册,因此程序在加密或解密时往往会中断,像 hello 甚至本段这样的普通单词

“Linux 是一系列基于 Linux 内核的开源类 Unix 操作系统,Linux 内核是 Linus Torvalds 于 1991 年 9 月 17 日首次发布的操作系统内核。”

工作正常,问题是有时我使用很长的文本加密它会在某些字母上中断,因为我无法将原始数据存储在 DOTENV 文件中并获取它,我似乎无法找到解决此问题的方法shuffled 和 normal string 需要有这个,任何人都可以帮助我吗?

【问题讨论】:

    标签: java dotenv


    【解决方案1】:

    我们不要在这个琐碎的方案中使用“加密”这个词,它可能会误导人们认为黑客需要超过 5 毫秒的时间才能破解这个方案。

    加密算法通常对字节进行操作。你对角色的特殊看法,但你写的内容肯定是为了学习一些东西(我当然希望这不是为了保护信息免受不应该阅读的人的伤害,因为,oof,这不是方式),所以也许使用您用来在基于字符的存储系统中存储任意字节的技术很有用,并且非常限制了它支持的字符(ASCII 的一个子集就是你所得到的)。有许多这样的系统:配置文件、电子邮件、Web URL 中的参数等等。

    解决方案是base64。这以 75% 的效率(您需要 4 个字符来存储 3 个字节)将字节编码为字符,这些字符几乎可以在任何情况下存在,并且可以在任何配置环境中工作。

    Base64 类将为您处理转换。你的加密数据是字符串形式(它应该是字节形式!),但有一个简单的解决方案:

    byte[] data = theString.getBytes(StandardCharsets.UTF_8);
    String copyOfTheString = new String(data, StandardCharsets.UTF_8);
    

    允许您从 String 转换为 byte[] ,反之亦然(这样您就可以将 byte[] 视为您需要保存的数据,通过使用 Base64 将其编码为安全字符串,然后存储安全字符串)。

    注意:如果这不是一个学习练习,但您实际上是在试图保护信息不被窥探,那么基本的解决方案是类似于 AES256,它被嵌入到 java 中,您可以通过以下方式找到它的免费和开放实现随便搜索一下网络。请注意,使用这种算法非常容易搞砸脚手架:该算法是安全的(如果地球上有人可以破解 AES 加密,那么他们一年可以轻松赚取数亿美元,如果他们打牌是对的),但你对它的特殊用法可能不是。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-07
      • 1970-01-01
      • 2011-04-30
      • 1970-01-01
      相关资源
      最近更新 更多