我在下面做了这个简单的例子,并试图加密/解密字符串。
但我不禁怀疑这是不是正确的做法。
看看下面,看看,如果它将发展问题不同的字符/字符串。
const getKey = (key) => {
let keyNum = 0;
for (let char of key) {
let cCode = char.charCodeAt(0) + key.length;
keyNum += cCode;
}
return keyNum;
};
const Encrypt = (str, key) => {
let text = '';
let keyNum = getKey(key);
for (let char of str) {
let cCode = char.charCodeAt(0) + keyNum;
// what happend if cCode dose not generate a valid string
text += String.fromCharCode(cCode);
}
return text;
};
const Decrypt = (str, key) => {
let text = '';
let keyNum = getKey(key);
for (let char of str) {
let cCode = char.charCodeAt(0) - keyNum;
text += String.fromCharCode(cCode);
}
return text;
};
const testText = "hahhaha this is a test - هههههه هذا اختبار";
const testKey = "test Key";
const eText = Encrypt(testText, testKey);
console.log("Encrypt:", eText)
console.log("Decrypt:", Decrypt(eText,testKey))
请看看上面Encrypt()
的评论,让我知道这是否真的会发生
我为什么要这样做
我想使用一个简单的加密与js(react-native)和c#一起工作。我找不到。这就是为什么我试图建立一个简单的插件。c#会加密js文件并将其上传到某个地方js会下载这些js文件解密它们并使用Function我将能够使用它们
首先这很糟糕。如果您想要一个简单的测试来检查您的加密(基本测试),只需输入与文本相同的字符,并查看您的输出的重复,这样我就可以发现您的密钥。
如果你希望使用好的加密,那么使用专业人员制作的库。
如果你真的想自己建立加密,那么坐在书中学习这个主题,这是一个非常有趣但也很难掌握的主题,这里没有镜头剪辑。
入门好书- 'Cryptography in C and c++ '