Untuk mengenkripsi pesan, masukkan pesan di kotak teks Plaintext, tentukan shift, dan klik Encrypt. Untuk mendekripsi pesan, masukkan pesan di kotak teks Ciphertext, tentukan shift, dan klik Decrypt. Perhatikan bahwa, dalam implementasi ini, string diubah menjadi huruf besar sebelum enkripsi/dekripsi, dan spasi serta tanda baca tidak dienkripsi/didekripsi Dengan menggunakan alat ini, cobalah untuk mendekripsi pesan berikut. SDQMF VAN, KAG NDAWQ FTQ OAPQ Hai, Saat ini saya sedang membuat kode beberapa aplikasi kriptografi sederhana untuk portofolio saya di Universitas. Saya telah memutuskan untuk membuat encrypter/decrypter cipher Caesar sederhana, dan saya berjuang dengan kode yang mendasarinya. Tentu saja, saya hanya ingin membuatnya bekerja pada string dan shift yang telah ditentukan sebelum saya menambahkan kode untuk membiarkan pengguna memutuskan
Bagian yang saya perjuangkan adalah mengubah setiap karakter dalam string menjadi nilai ASCII-nya, lalu menaikkannya. Adakah yang bisa menawarkan tip tentang cara melakukan ini?
<?php $string = "Hello World"; $stringlength = strlen($string); for ($counter = 0; $counter < $stringlength; $counter++) { $string[$counter]++; echo $string[$counter]; } ?>
terima kasih Tautkan ke komentarBerbagi di situs lainLebih banyak opsi berbagi YaDiposting 23 Maret 2009 Ya
Diposting 23 Maret 2009 Mungkin ide untuk menjelaskan seperti apa string sebelum dan sesudahnya sehingga kami memiliki lebih banyak ide - belum pernah mendengar tentang enkripsi Caesar sebelumnya Tautkan ke komentarBerbagi di situs lainLebih banyak opsi berbagi HFDDiposting 23 Maret 2009 HFD
Diposting 23 Maret 2009 Terima kasih untuk balasan Anda
Apa yang dilakukan sandi Caesar adalah menambah setiap huruf dengan jumlah tertentu, jadi jika dengan menambah dua HELLO menjadi JGNNQ Tautkan ke komentarBerbagi di situs lainLebih banyak opsi berbagi YaDiposting 23 Maret 2009 Ya
Diposting 23 Maret 2009 Saya pikir saya mengetahuinya sekarang
Anda harus membuat larik yang berisi semua offset dari karakter baru $key=array('A' => 'Q', 'B' => 'W', 'C' => 'E'...);_
Kemudian sebuah loop untuk membaca string Anda menggantikan karakter $str='HELLO WORLD'; $length=strlen($str); $newstr=''; for ($i=0;$i<$length;++$i) { if (in_array($str[$i],$key[$i])) { $newstr.=$key[$i]; } }
Sesuatu seperti itu
EDIT. Diganti count() dengan strlen() Tautkan ke komentarBerbagi di situs lainLebih banyak opsi berbagi HFDDiposting 23 Maret 2009 HFD
Diposting 23 Maret 2009 Terima kasih satu-satunya masalah adalah dalam skenario itu saya harus membuat 25 larik dengan offset untuk shift yang berbeda - itu tentu saja sepenuhnya mungkin dan bagus tetapi hanya ingin tahu apakah adaTautkan ke komentarBerbagi di situs lainLebih banyak opsi berbagi YaDiposting 23 Maret 2009 Ya
Diposting 23 Maret 2009 Saya rasa tidak - Anda akan selalu membutuhkan larik yang menentukan akan menjadi apa setiap huruf. Plus untuk mendekripsi Anda memerlukan array lain dengan huruf terbalik $key=array('Q' => 'A', 'W' => 'B', 'E' => 'C'..);
Anda juga tidak dapat membuatnya dari acak karena Anda tidak akan dapat mendekripsi apa pun kecuali Anda menyimpan kuncinya Tautkan ke komentarBerbagi di situs lainLebih banyak opsi berbagi HFDDiposting 23 Maret 2009 HFD
Diposting 23 Maret 2009 Ah ok terima kasih, array seharusnya baik-baik saja Tautkan ke komentarBerbagi di situs lainLebih banyak opsi berbagi adam291086Diposting 23 Maret 2009 adam291086
Diposting 23 Maret 2009 hai
Saya telah melihat sandi dengan uni juga
melakukan larik
$key=array('A' => '1', 'B' => '2', 'C' => '3'. );
Kemudian pisahkan string ke dalam karakter dan bandingkan dengan array dan itu akan memberi Anda huruf sebagai angka, Anda kemudian dapat menambahkan jumlah N ke setiap angka untuk pergeseran
Tautkan ke komentarBerbagi di situs lainLebih banyak opsi berbagi serigala penyendiri217Diposting 23 Maret 2009 serigala penyendiri217
Diposting 23 Maret 2009 ini bekerja, pikir itu mungkin bukan yang paling optimal. saat ini dirancang untuk huruf, meskipun konsepnya dapat digunakan untuk bagian mana pun dari nilai ascii
<?php $string = "hello"; $newstring = "hello"; for ($i=0;$i<strlen($string);$i++) { $ascii = ord($string[$i]); if($ascii == 90) { //uppercase bound $ascii = 65; //reset back to 'A' } else if($ascii == 122) { //lowercase bound $ascii = 97; //reset back to 'a' } else { $ascii++; } $newstring[$i] = chr($ascii); echo $newstring."<br>"; } ?>_ Tautkan ke komentarBerbagi di situs lainLebih banyak opsi berbagi YaDiposting 23 Maret 2009 Ya
Diposting 23 Maret 2009 Apa yang telah saya katakan tetapi adam hanya akan dapat menggunakan 10 huruf jika tidak, string terenkripsi akan lebih panjang dan mendekripsi itu akan menjadi mimpi buruk |