Побитовые операции
Всем привет, пожалуйста можете посмотреть скрипт и помочь исправить, и объяснить, попытался сделать, но правильно не шифруется
Исхoдный тeкст обрaбатываeтся посимвольно. Символ разбивается на два байта. Шифрование происходит инверсией бит (0 ↔ 1) в правом байте символа. "use strict" function Main() { var text = []; var that = this; this.charCode = function(ch){ //извлечь байты var left = ch.charCodeAt() >> 8;// Нужно еще перевести в 2-ую СС? var right = ch.charCodeAt(); // right = that.swapBits( right ); // сложить в один char return String.fromCharCode( left << 8 | right ); } this.swapBits = function(x){ return ~x; } this.mainP = function() { var myString = "Жи Ши пиши"; for(var i = 0; i < myString.length; i++){ text[i] = myString.charAt( i ); } console.log(text); for (var i = 0; i < text.length; i++) { text[i] = that.charCode(text[i]); } console.log(text); } function stringToBytes ( str ) { var ch, st, re = [], j=0; for (var i = 0; i < str.length; i++ ) { ch = str.charCodeAt(i); if(ch < 127) { re[j++] = ch & 0xFF; } else { st = []; // clear stack do { st.push( ch & 0xFF ); // push byte to stack ch = ch >> 8; // shift value down by 1 byte } while ( ch ); st = st.reverse(); for(var k=0;k<st.length; ++k) re[j++] = st[k]; } } return re; } } |
vanished
|
Часовой пояс GMT +3, время: 01:08. |