자바스크립트에서 객체에 바이너리 데이터를 삽입하고 싶습니다. 이를 수행할 수 있는 방법이 있나요?
즉
var binObj = new BinaryObject('101010100101011');
비슷한 의미입니다. 어떤 도움이라도 감사하겠습니다.
구글 기어를 바라볼 수도 있습니다 디스크입니다. diskid 바이너리 Blob 객체에는 또는 살펴 하는 javascript 래퍼 증가-플래시 제공하는 네이티브 ByteArray 구축상의.
또는. 수 있습니다 앉아서 기다릴 일반 이 모든 것을 바라고 있다.)
최근의 브라우저에서 모든 작업을 수행할 수 있습니다.
xhr.overrideMimeType('text/plain; charset=x-user-defined');
및 읽어들입니다 구체화하십시오. 이진 결과를 얻기 위해 해야 할 것입니다.
data.charCodeAt(pos) & 0xff;
xhr.responseType = "arraybuffer";
그 결과 액세스할 수 있습니다 다음
xhr.mozResponseArrayBuffer // Firefox
xhr.response // Chrome
그런 다음 적용하십시오 TypedArray (예: 다타비에프 int32array) 또는 버퍼 읽을 수 있는 결과를 얻을 수 있습니다.
자바스크립트는 원시 바이너리 데이터를 거의 지원하지 않습니다. 일반적으로 이 제한 내에서 사용하는 것이 가장 좋습니다. 하지만 OLAP 데이터베이스에서 집합 연산을 수행하기 위해 거대한 비트맵을 조작하는 제 프로젝트에서 시도해볼 만한 트릭이 있습니다. IE에서는 작동하지 않습니다.
기본 아이디어는 다음과 같습니다. 바이너리 데이터를 PNG로 강제로 변환하여 JavaScript로 전송하는 것입니다. 예를 들어 비트맵은 흑백 PNG일 수 있으며 검은색은 100% 투명합니다. 그런 다음 캔버스 연산을 사용하여 비트 단위 데이터 조작을 수행합니다.
HTML5 캔버스]2에는 이미지의 바이트에 액세스할 수 있는 픽셀 배열 유형이 포함되어 있습니다. 캔버스는 XOR과 같은 합성 연산도 지원합니다. 밝게 및 어둡게는 AND 및 OR을 수행할 수 있어야 합니다. 이러한 연산은 GPU를 사용하는 등 이를 지원하는 모든 브라우저에서 최적화될 가능성이 높습니다.
이 작업을 시도해 보신 분이 있으면 얼마나 잘 작동하는지 알려주세요.
[아라불퍼스] 앞으로 사용할 수 있습니다 (https://developer.mozilla.org/en/JavaScript_typed_arrays/ArrayBuffer) 및 [파일 API blob] (http://www.w3.org/TR/FileAPI/).
다른 방식이 될 전망이다. '탕' 와 '스콸레로트 수학 수업' 에 의해 계산될 수 있다. # 39 는 있지만, 내가 모르는 don& 경우 가장 빨리, 빨리 it& # 39 의 s 는 윈도우 계산기를 프로그래머용 View" ";).
AlertFormatedBin();
function AlertFormatedBin()
{
var vals = decToBinArr(31,8);
var i;
var s = "";
var mod = vals.length % 4;
for(i= 0; i <mod;i++)
{
s+=vals[i];
}
if(i>0)
s+=" ";
var j = i;
for(i;i<vals.length;i++)
{
s+=vals[i];
if(i-j != 0 && (i+1-j)%4 == 0)
{
s+=" ";
}
}
alert(s);
}
function decToBinArr(dec, minSize)
{
var mod = dec%2;
var r = new Array();
if(dec > 1)
{
dec-=mod;
var bd = squareRootRoundedDown(dec);
if(minSize && minSize-1 > bd)
bd = minSize-1;
else
var i;
for(i = bd; i>0;i--)
{
var nxt = pow(2,i);
if(dec >= nxt)
{
r[i] = 1;
dec-=nxt;
}
else
{
r[i] = 0;
}
}
}
r[0]= mod;
r.reverse();
return r;
}
function squareRootRoundedDown(dec)
{
if(dec<2)
return 0;
var x = 2;
var i;
for(i= 1;true;i++)
{
if(x>=dec)
{
i = x == dec ? i : i-1;
break;
}
x= x*2;
}
return i;
}
function pow(b,exp)
{
if(exp == 0)
return 0;
var i = 1;
var r= b;
for(i = 1; i < exp;i++)
r=r*b;
return r;
}
최근 (2016년 말, @Zippy 셀명 있다고 지적한 바 있다) 솔루션을 다음과 같습니다.
퍼센트 인코딩 할 수 있는 바이너리 blob 레프레센타이온 > 어니스카피 문장열 붙여넣습니다 직접판매용 1< -), 1, 또한 다양한 브라우저에서 이동형이든지.
unescape("%uFFFF%uFFFF%uFFFF");
대부분의 브라우저 exploit& # 39 의 [이 기법을] [1] 를 사용하여, 임의의 이진 HTML 페이지를 잘 았겠습니다 작동하잖아 포함하기 위한 셸코드 생성을 위한 스트리밍합니다.
[1]: http://en.wikipedia.org/wiki/Shellcode # Percent_encoding
자바스크립트는 단순한 문자열 이외의 다른 형태로 객체를 로드하는 메커니즘을 제공하지 않습니다.
가장 가까운 방법은 객체를 문자열로 직렬화하고, 선택적으로 암호화/압축하여 브라우저로 전송한 다음, 필요한 경우 복호화/압축 해제하고, 정상 여부를 확인하고, eval() 및 pray()를 사용하는 것입니다.
안전하지 않은 eval을 사용하는 대신 자체 형식(또는 많은 라이브러리가 있는 xml 또는 json)을 사용하여 직접 구문 분석할 수 있습니다.
참고로 브라우저가 사용 가능한 데이터를 가져온 후(복호화/압축 해제 후) 난독화를 위해 이 방법을 사용하려는 경우 우회하기가 너무 쉽습니다.
모든 사람에게 이 이전 포스트에 itopia com/downloads/global/corporate/iar/esg_prosupport. 구글. 내가 생각 아웃하려면 솔루션이므로 작동하는 크롬 (2019년 기준), 그래서 많은 사람들이 누락했습니다 피쳐나 뭔가 이건 그냥 일부 추가되든지 기대해 본다.
'0b' 접두어입니다 데이터베이스에구성원을 번호를 사용할 수 있습니다. # 39 won& 정보기술 (it), 이진 표현을 쉽게 변환할 수 없는 매우 내려받습니다 확장하지만 redhat. 스토리지용으로 정수. 예를 들어, 다음과 같은 바이너리 숫자 '1010년' 저장할 수 있습니다
var binNum = 0b1010 //Stores as an integer, which would be 10
var binNum = 0x1010 //Stores as an integer, which would be 4112