나는 아주 새로운 clojure입니다. Java라이브러리 기능을 가진 경험이 없습니다. 나는 java.util.Base64/getUrlEncoder를 사용하여 base64로 암호화 된 데이터를 반환하는 clojure에서 함수를 작성했습니다. 출력은 패딩뿐만 아니라 (마지막에서 이 등호)를 포함패딩없이 암호화 된 데이터를 얻는 방법?
user> (import java.util.Base64)
java.util.Base64
user> (let [encoder (Base64/getUrlEncoder)]
(String. (.encode encoder (.getBytes "Hello StackOverflow"))))
"SGVsbG8gU3RhY2tPdmVyZmxvdw=="
:처럼 내 코드 모양. 내가 원하는 내 출력에서 패딩을 제거. https://docs.oracle.com/javase/8/docs/api/java/util/Base64.Encoder.html#withoutPadding-- 이것이 내 문제를 해결하는 데 유용하다는 것을 알고 있습니다.하지만 withoutPadding() 함수를 clojure에서 사용하는 방법을 알 수는 없습니다. 나는 이와 같은 것을 시도했다 :
user> (let [encoder (Base64/getUrlEncoder))]
(doto (java.util.Base64/Encoder (.withoutPadding (String. (.encode encoder (.getBytes "Hello StackOverflow"))))))
그러나 이것은 틀렸다. 누구든지 정확한 해결책을 말할 수 있습니까? 감사.
Base64로 출력 배수, 그 방법 Base64로 작품입니다 . "="문자는 제거 할 수 있으며 대부분의 문자는 받아 들일 수 없습니다. Base64 길이를 기반으로 디코딩하기 전에 복원 및 삭제할 수 있지만 권장하지는 않습니다. 그냥 패딩을 남겨주세요. 이것이 일반적인 관행입니다. – zaph
이 명확해야합니다. base64는 암호화 방법이 아니며 인코딩입니다. – noisesmith