XOR을 사용하여 문자열을 암호화하는 다음 C++ 코드가 있습니다.C++ 암호화를 Java로 변환
#define MPI_CIPHER_KEY "qwerty"
Buffer FooClient::cipher_string(const Buffer& _landing_url)
{
String key(CIPHER_KEY);
Buffer key_buf(key.chars(), key.length());
Buffer landing_url_cipher = FooClient::XOR(_url, key_buf);
Buffer b64_url_cipher;
base64_encode(landing_url_cipher, b64_url_cipher);
return b64_url_cipher;
}
Buffer FooClient::XOR(const Buffer& _data, const Buffer& _key)
{
Buffer retval(_data);
unsigned int klen=_key.length();
unsigned int dlen=_data.length();
unsigned int k=0;
unsigned int d=0;
for(;d<dlen;d++)
{
retval[d]=_data[d]^_key[k];
k=(++k<klen?k:0);
}
return retval;
}
나는 그러한 자바 impl.을 this question에서 보았다. 이 사건에 효과가 있습니까?
String s1, s2;
StringBuilder sb = new StringBuilder();
for(int i=0; i<s1.length() && i<s2.length();i++)
sb.append((char)(s1.charAt(i)^s2.charAt(i)));
String result = sb.toString();
또는 더 쉬운 방법이 있습니까?
네, 알겠습니다. 그래서 내가 사용할 수있는 도서관과 같은 쉬운 방법이 있는지 물었습니다. 감사. – DarthVader