Encryption Evernote中的In-note文本加密数据结构

Encryption Evernote中的In-note文本加密数据结构,encryption,aes,evernote,pbkdf2,cbc-mode,Encryption,Aes,Evernote,Pbkdf2,Cbc Mode,我是几个evernote扩展的作者,我不想利用加密文本,在我的终端创建它们,并使用enml结构和EnCrypt将它们添加到注释中 但是,我无法理解en-crypt CDATA的结构 如果在导出注释后查看.enex文件,则加密文本的enml元素如下所示: <en-crypt hint="My Cat's Name">NKLHX5yK1MlpzemJQijAN6C4545s2EODxQ8Bg1r==</en-crypt> NKLHX5yK1MlpzemJQijAN6C454

我是几个evernote扩展的作者,我不想利用加密文本,在我的终端创建它们,并使用enml结构和EnCrypt将它们添加到注释中

但是,我无法理解en-crypt CDATA的结构

如果在导出注释后查看.enex文件,则加密文本的enml元素如下所示:

<en-crypt hint="My Cat's Name">NKLHX5yK1MlpzemJQijAN6C4545s2EODxQ8Bg1r==</en-crypt>
NKLHX5yK1MlpzemJQijAN6C4545s2EODxQ8Bg1r==
我已经看完了 这解释了密钥是用PBKDF2派生的,加密是用唯一的salt aes cbc 256bit方法完成的,但是,看上面的例子,我不知道数据是如何存储在那里的

如果我计算正确,有两个独特的盐和一个四,以及加密文本存储在那里。所以我的问题是,人们如何利用这一块?可能有一种标准方法可以将所有这些信息存储在一个base64块中。但我不是加密专家,所以任何一点帮助都是非常感谢的


谢谢。

对于旧的、基于RC2的加密(如果您的
标记没有
cipher=“AES”
属性,这是基于RC2的加密),算法大致如下:

<en-crypt hint="My Cat's Name">NKLHX5yK1MlpzemJQijAN6C4545s2EODxQ8Bg1r==</en-crypt>
decodedString=RC2.decrypt(Base64.decode(encodedString),MD5.hash(UTF8.encode(passphrase)),64)

在解码字符串中,字符串的前4个字符是解码字符串其余部分的CRC32上字节的十六进制表示


一个警告:在计算CRC32时,您可能需要使用
-1
0xFFFFFFFF
)对其进行异或运算,因为在野外有不同的CRC32实现,可能会也可能不会进行最后的异或运算。

对于旧的、基于RC2的加密(并且如果您的
标记没有
cipher=“AES”
属性,这是基于RC2的加密),算法大致如下:

<en-crypt hint="My Cat's Name">NKLHX5yK1MlpzemJQijAN6C4545s2EODxQ8Bg1r==</en-crypt>
decodedString=RC2.decrypt(Base64.decode(encodedString),MD5.hash(UTF8.encode(passphrase)),64)

在解码字符串中,字符串的前4个字符是解码字符串其余部分的CRC32上字节的十六进制表示


一个警告:在计算CRC32时,您可能需要使用
-1
0xFFFFFFFF
)对其进行异或,因为在野外有不同的CRC32实现,可能会也可能不会进行最终的异或。

您好,Igor。谢谢你的回复。如果可以的话,你能为这样一个块的算法提供一个例子吗
RU5DMFy…7cKA==
因为在最近的实现中,这就是在evernote中获得加密文本的方式。您好Igor。谢谢你的回复。如果可以的话,你能为这样一个块的算法提供一个例子吗
RU5DMFy…7cKA==
因为在最近的实现中,这就是在evernote中获得加密文本的方式。