如何在没有填充的情况下获取加密数据?

时间:2016-06-30 19:48:33

标签: java clojure base64 urlencode

我在clojure中非常新。我没有任何java& amp;它的库函数。我在clojure中编写了一个函数,它使用java.util.Base64 / getUrlEncoder返回base64加密数据。我的代码看起来像:

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--我知道这对解决我的问题很有用,但我无法弄清楚如何在clojure中使用 withoutPadding()函数。我试过这样的事情:

user> (let [encoder (Base64/getUrlEncoder))]
        (doto (java.util.Base64/Encoder (.withoutPadding (String. (.encode encoder (.getBytes "Hello StackOverflow"))))))

但这是错误的。谁能说出确切的解决方案?感谢。

1 个答案:

答案 0 :(得分:4)

您必须在编码器本身上调用thread_local

withoutPadding