【问题标题】:In note text encrypted data structure in Evernote印象笔记中的笔记文本加密数据结构
【发布时间】:2018-03-08 07:45:24
【问题描述】:

我是几个印象笔记扩展的作者,我不想使用加密文本,我自己创建它们并使用 enml 结构和加密添加到笔记中。

但是,我无法弄清楚加密 CDATA 的结构。

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

<en-crypt hint="My Cat's Name">NKLHX5yK1MlpzemJQijAN6C4545s2EODxQ8Bg1r==</en-crypt>

我已经读过了 https://help.evernote.com/hc/en-us/articles/208314128-What-type-of-encryption-does-Evernote-use 这解释了密钥是使用 PBKDF2 派生的,并且加密是使用独特的 salt aes-cbc 256bit 方法完成的,但是,查看上面的示例,我无法弄清楚该数据是如何存储在那里的。

如果我计算正确,有两种独特的盐和一种 IV,以及要存储在那里的加密文本。所以我的问题是,如何利用该块?可能有一种标准方法可以将所有这些信息存储在一个 base64 块中。但我不是加密专家,因此不胜感激。

谢谢。

【问题讨论】:

    标签: encryption aes evernote pbkdf2 cbc-mode


    【解决方案1】:

    对于旧的基于 RC2 的加密(如果您的 &lt;en-crypt&gt; 标签没有 cipher="AES" 属性,这是基于 RC2 的加密),算法大致如下:

    decodedString = RC2.decrypt(Base64.decode(encodedString), MD5.hash(UTF8.encode(passphrase)), 64);

    在解码的字符串中,字符串的前 4 个字符是其余解码字符串的 CRC32 的高字节的 HEX 表示。

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

    【讨论】:

    • 你好,伊戈尔。感谢您的答复。如果可以的话,您能否为这样的块提供一个算法示例? &lt;en-crypt cipher="AES" hint="normal" length="128"&gt;RU5DMFy...7cKA==&lt;/en-crypt&gt;,因为在最近的实现中,这就是你在印象笔记中获取加密文本的方式。
    猜你喜欢
    • 2012-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多