JavaSciprt Şifreleme ve Şifre Çözme Fonksiyonu
Arkadaşlar JS ile verilen datayı şifreleme ve istediğim zaman şifreden çözmek için 2 fonksiyon oluşturmaya çalışıyorum ama istediğim sonucu vermiyor.
function encryptData(data) {
let encryptedData = '';
for (let i = 0; i < data.length; i++) {
const randomChar = String.fromCharCode(Math.floor(Math.random() * 26) + 65); // Rastgele büyük harf
encryptedData += randomChar + data.charCodeAt(i);
}
return encryptedData;
}
function decryptData(encryptedData) {
let decryptedData = '';
for (let i = 0; i < encryptedData.length; i += 2) {
const charCode = encryptedData.charCodeAt(i + 1);
decryptedData += String.fromCharCode(charCode);
}
return decryptedData;
}
Bunları chatgtp'ye yaptırdım ama şifrelenmiş veriyi düzgün çözmüyor. Daha basit şifreleme ve şifre çözme fonksiyonu olan varsa yardımcı olabilir mi?
Herhangi bir şifreleme yapısı olabilir
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
@gorkem59 Kriptoloji ile ilgili biraz makale okuman gerektiğini düşünüyorum. Chatgpt'den bunun için faydalanabilirsin. Yazdığın kodu kimsenin kolaylıkla çözememesini istiyorsan Chatgpt'nin verdiği kod işine yaramayacaktır.
@ebykdrms'nin bahsettiği crypto-js kütüphanesi ile örnek bir çalışma yapmıştım, buradan bakabilirsin: https://github.com/webaraclar/Encryption-with-Javascript
Chatgpt'nin verdiği kodun düzeltilmiş hali:
let yazi = "erkanagri";
function encryptData(data) {
let encryptedData = '';
for (let i = 0; i < data.length; i++) {
const randomChar = String.fromCharCode(Math.floor(Math.random() * 26) + 65); // Rastgele büyük harf
encryptedData += randomChar + data.charCodeAt(i);
}
return encryptedData;
}
function decryptData(encryptedData) {
let kelime = (encryptedData.match(/(\d){2,3}/g));
let decryptedData = '';
for (let i=0; i < kelime.length; i++){
decryptedData += String.fromCharCode(kelime[i]);
}
return decryptedData;
}
let sfr = encryptData(yazi);
console.log(decryptData(sfr));
Öncelikle, eğer amacın şifrelemeyse bunu front-end tarafında yapmamalısın.
Şu anda haftalık 6 milyon indirmesi olan crypto-js paketini kullanabilirsin.
https://www.npmjs.com/package/crypto-js