Всем привет, пожалуйста можете посмотреть скрипт и помочь исправить, и объяснить, попытался сделать, но правильно не шифруется
Исх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;
}
}