【发布时间】:2020-01-12 15:14:05
【问题描述】:
前几天我开始解决https://cryptopals.com 设置的第一个问题。我正在尝试同时学习 Clojure,所以我想我会在 Clojure 中实现所有练习。这些练习当然是为了学习目的,但我会尽量不使用除 clojure.core 和 Java 标准库之外的任何库。 第一个练习要求您编写代码,接收以十六进制编码的字符串并输出以 base64 编码的字符串。执行此操作的算法相当简单:
- 获取与每对十六进制数字关联的字节(例如,十六进制
49变为01001001)。 - 检索完十六进制字符串的所有字节后,将字节列表转换为单个位序列。
- 对于每 6 位,返回一个 base64 字符(它们都表示为 6 位单元)。
我在 Clojure 中实际表示/处理位和字节时遇到了麻烦(对原始字节进行操作是练习的要求之一)。我知道我可以在初始十六进制值上执行byte-array 并取回一个字节数组,但是如何访问原始位以便我可以将一系列字节转换为 base64 编码字符串?
任何帮助或指导将不胜感激。
【问题讨论】:
标签: java clojure base64 hex byte