我在想办法做这样的事。我不知道怎么称呼它,所以我不知道它是否存在或者如何找到它。欢迎使用一些关键字:)
String var_1 = "user data";
String fix_1 = "supply data";
String mix = mixer(var_1,fix_1);
// mix = " something fully random "
String var_2 = "user data changed";
String fix_2 = fixer(var_2,mix);
和混合==混合器(var_2,fix_2);
所以为了继续,我需要从2个变量中生成随机数据。1是用户的变量,1是我提供的。
第一次,我用这两个变量和一个函数生成数据。
然后,如果用户数据改变,用另一个函数,我用第一个结果和新的用户数据计算新的供应数据。如果我再次使用计算数据和新用户数据,我必须获得第一次计算的相同数据。
有什么办法吗?像一些密码技术之类的?
感谢英特尔。
所以在评论中遵循User253751的思想,我就能够做到这一点。
步骤:
---
这里是我的代码(不是一个复制/粘贴片段,因为它使用我自己的库),但是你可以通过函数名很容易地理解它。
KeyObfusc publicKey_1 = KeyObfusc.fromPassword("publicKey_1");
KeyObfusc password_1 = KeyObfusc.fromPassword("password_1");
Encoder encoder_1 = new Encoder(password_1, CipherFormat.HEX);
Decoder decoder_1 = new Decoder(password_1, CipherFormat.HEX);
byte[] privateKey = encoder_1.toBytes(publicKey_1.getEncoded());
byte[] publicKey_1_Rebuild = decoder_1.fromBytesToBytes(privateKey);
LogDelay.send("password_1 : " + BytesTo.stringHex(password_1.getEncoded()));
LogDelay.send("publicKey_1 : " + BytesTo.stringHex(publicKey_1.getEncoded()));
LogDelay.send("privateKey : " + BytesTo.stringHex(privateKey));
LogDelay.send("publicKey_1 Rebuild : " + Arrays.equals(publicKey_1.getEncoded(), publicKey_1_Rebuild) +
" " + BytesTo.stringHex(publicKey_1_Rebuild));
LogDelay.send();
KeyObfusc password_2 = KeyObfusc.fromPassword("password_2");
Encoder encoder_2 = new Encoder(password_2, CipherFormat.HEX);
Decoder decoder_2 = new Decoder(password_2, CipherFormat.HEX);
byte[] publicKey_2 = decoder_2.fromBytesToBytes(privateKey);
byte[] privateKey_Rebuild = encoder_2.toBytes(publicKey_2);
LogDelay.send("password_2 : " + BytesTo.stringHex(password_2.getEncoded()));
LogDelay.send("publicKey_2 : " + BytesTo.stringHex(publicKey_2));
LogDelay.send("privateKey Rebuild: " + Arrays.equals(privateKey, privateKey_Rebuild) +
" " + BytesTo.stringHex(privateKey_Rebuild));
LogDelay.send();
事实上,已经有这样的东西可以满足你的需求。其实你也知道这个函数。这是好的旧XOR。是的,它经常被用于密码。事实上,这是流密码和One Time Pad的核心思想。
事情是这样的:
n
的字节数组,称为var\u 1
这整件事将像随机和秘密的<代码>fix_1一样随机和安全。如果其中一个值不是随机的,则该方法根本不安全。
我想把我的Django前端和后端分开。实际上创建了2个Django服务器。 在前端存储身份验证访问令牌和刷新令牌的最佳方式是什么? 调用API时验证身份验证的最佳方法是什么? 谢谢!
第二,客户端向服务器端发送公钥。 服务器生成对称AES密钥。 4T:服务器用他的AES密钥加密他想要发送给客户端的文本。
我用过这个命令 生成密钥库。它工作正常,但从我读到的内容来看,这个命令还应该提示您输入密钥密码(而不是存储密码)?我从来没有收到过这样的提示。我能跑 查看密钥库的内容。钥匙似乎就在那里。。。正确的别名在那里。在哪里获取/设置特定别名的密码? 我有一个key.properties在Android目录 在build.gradle我有: 当我试图生成一个发布版本时,我得到了 我想它可能与keyPassw
这是我的密码 抱歉,如果我的代码一团糟。
使用EVP_BytesToKey()返回错误的key和iv可能出了什么问题? 我试过用iter计数值做实验,但似乎没有一个能产生工作键和IV。我假设命令行默认的iter计数是1。 同样确认的是,如果我用命令行显示的工作键和iv覆盖从EVP_BytesToKey()返回的内容和硬代码无符号char数组,我的其余代码工作正常,解密正确。 有人能帮忙吗?
问题内容: 我尝试从KeyStore获取密钥。我通过Keytool创建了一个密钥库: keytool -genkeypair -dname“ cn = Mark Jones,ou = JavaSoft,o = Sun,c = US” -alias business2 -keypass abcdtest -keystore C:\ workspace \ XMLSample \ keystore \