[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#58472: [PATCH] Make `message-unique-id' less prone to collisions
From: |
Matt Armstrong |
Subject: |
bug#58472: [PATCH] Make `message-unique-id' less prone to collisions |
Date: |
Sun, 16 Oct 2022 08:19:57 -0700 |
Paul Eggert <eggert@cs.ucla.edu> writes:
> On 2022-10-12 19:46, Stefan Kangas wrote:
>
>> The main goal is to avoid collisions, but using the time also gives an
>> idea of when the message was sent, which is kind of nice.
>
> That info is in the Date: line, along with zillions of other Received:
> lines. There should be no need to repeat it in the Message-ID line.
>
>> Time also
>> guarantees a somewhat unique value even if the user has happened to set
>> the random seed.
>
> If that's a concern, we should be using more-random data, e.g., with
>
> (base64-encode-string
> (secure-hash 'md5 'iv-auto 128 nil t))
>
> if we want 128 bits of randomness (this yields a string like
> "B8a3usyu5QSE/rTLu0nIHg==").
Small suggestion: `base64-url-encode-string` avoids any trailing `===`
and uses slightly preferable non-alnum chars (I think).
But both can generate Message-Id with "command line switch" chars:
either ?- or ?/. Since some tools expect users to work directly with
Message-ID at times (https://notmuchmail.org/) it might be nice to avoid
leading non-alnum chars, and possibly avoid '-' to avoid any confusion
with a UUID (in the sense of the schema defined by the RFC standard).
Maybe a base 62 encoder could be written just for this, as Emacs'
version of this doesn't need to be fast. Can a string be turned into a
non-negative bignum integer in (simple) elisp?
--
matt (sent from an Emacs running the feature/noverlay branch)
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, (continued)
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Stefan Kangas, 2022/10/12
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Matt Armstrong, 2022/10/13
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Stefan Kangas, 2022/10/13
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Matt Armstrong, 2022/10/13
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Paul Eggert, 2022/10/13
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Stefan Kangas, 2022/10/14
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Paul Eggert, 2022/10/13
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Stefan Kangas, 2022/10/14
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Stefan Kangas, 2022/10/16
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Stefan Kangas, 2022/10/16
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions,
Matt Armstrong <=
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Stefan Kangas, 2022/10/16
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Matt Armstrong, 2022/10/17
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Paul Eggert, 2022/10/17
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Stefan Kangas, 2022/10/17
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Eli Zaretskii, 2022/10/17
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Matt Armstrong, 2022/10/17
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Eli Zaretskii, 2022/10/17
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Lars Ingebrigtsen, 2022/10/17
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Eli Zaretskii, 2022/10/17
- bug#58472: [PATCH] Make `message-unique-id' less prone to collisions, Stefan Kangas, 2022/10/17