ログインページを確認しているときに、次のJSコードを見つけました
hexMD5('\232' + document.login.password.value + '\305\334\122\134\352');
それで、私は\352
それが1バイトを占めるので、オーバーフローを引き起こし、その値を保持96
するためにJavaスクリプトインタープリターが昇格するかどうかについて尋ねていますか?short
ログインページを確認しているときに、次のJSコードを見つけました
hexMD5('\232' + document.login.password.value + '\305\334\122\134\352');
それで、私は\352
それが1バイトを占めるので、オーバーフローを引き起こし、その値を保持96
するためにJavaスクリプトインタープリターが昇格するかどうかについて尋ねていますか?short
JavaScript には、bytes、shorts、integers* はありません。倍精度の IEEE-754 数値であるNumber
typeのみがあります。しかし、charCodeAt
コード ポイント (大まかに言うと「文字」) を文字列で定義しているため、何かが文字列を使用してその中の文字の 1 つに対応するコード ポイントを取得しない限り、それは実際に示したコードには関係ありません。数字ではありません。JavaScript の文字は 16 ビット エンティティであるため、8 進エスケープ'\352'
は文字 234 10 進数をエンコードします。これは明らかに、文字の 16 ビット範囲内に容易に収まります。
補足: 8 進数のエスケープは主要な標準の一部ではなく、strict モードでは許可されていません。それらは、仕様の非規範的な付属書の一部です。8 進エスケープではなく、16 進エスケープまたは Unicode エスケープを使用することをお勧めします。
* まあ、JavaScript には、 and演算子によって実行されるようなビット関連の計算中に、一時的なものとして 32 ビット整数があります。&
|