KEY を使用して文字列 (実際にはそのバイナリ表現) を Bitwise-XOR したいと考えています。
演算の結果は HEX で表す必要があります。
私が持っているもの: 'a' - 変更する UTF-8 文字列。'ACF123456' - HEX のキー。
BIGINT として表示される結果:
select CONV(HEX('a'), 16, 10) ^ CONV('ACF123456', 16, 10);
16 進数として表示される結果:
select CONV( CONV(HEX('a'), 16, 10) ^ CONV('ACF123456', 16, 10), 10, 16);
質問:
- 上記の変換は正しく行われていますか?
- 文字列が長すぎる場合 (つまり、'a' の代わりに 'a veeeeeery long string' がある場合) はどうなりますか? conv() 関数には制限があるようです (ドキュメントからの 64 ビット精度ですか)? また、XOR 演算子 ^ には、nr に関連する制限もあります。返された結果のビット数。任意の文字列で機能するソリューションはありますか (ストアド プロシージャは許可されています)?
ありがとう。