url безопасный base64 в MySQL
URL MySQL TO_BASE64 безопасен? Используя Java, я могу написать следующий код:
import org.apache.commons.codec.binary.Base64;
public class Main {
public static void main(String[] args) {
String text = "SomeText";
byte[] input = text.getBytes();
// url safe base64
// How do I do this in MySQL?
// I tried mysql> SELECT TO_BASE64('SomeText'); but it does not seem to return url safe output
Base64 base64 = new Base64(-1, null, true);
input = base64.encode(input);
}
}
1 ответ
Решение
После прочтения документации я сделал следующее:
Заменить "+" на "-"
Заменить '_'
Удалить трейлинг '='
SELECT TRIM(TRAILING '=' FROM REPLACE(REPLACE(CONCAT('SHA-1', TO_BASE64('SomeText')), '+', '-'), '/', '_')) AS input;