From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Kangas Newsgroups: gmane.emacs.bugs Subject: bug#58472: [PATCH] Make `message-unique-id' less prone to collisions Date: Thu, 13 Oct 2022 12:10:39 +0000 Message-ID: References: <87k054qq7b.fsf@rfc20.org> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5525"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 58472@debbugs.gnu.org, Paul Eggert To: Matt Armstrong Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Oct 13 14:21:18 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oixDC-00019H-1O for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 13 Oct 2022 14:21:18 +0200 Original-Received: from localhost ([::1]:46400 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oixDA-0000iy-SP for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 13 Oct 2022 08:21:16 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:39770) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oix3G-0003OM-FH for bug-gnu-emacs@gnu.org; Thu, 13 Oct 2022 08:11:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:60779) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oix3G-0008QU-68 for bug-gnu-emacs@gnu.org; Thu, 13 Oct 2022 08:11:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oix3G-0002eC-0K for bug-gnu-emacs@gnu.org; Thu, 13 Oct 2022 08:11:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Kangas Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 13 Oct 2022 12:11:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 58472 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 58472-submit@debbugs.gnu.org id=B58472.166566304810148 (code B ref 58472); Thu, 13 Oct 2022 12:11:01 +0000 Original-Received: (at 58472) by debbugs.gnu.org; 13 Oct 2022 12:10:48 +0000 Original-Received: from localhost ([127.0.0.1]:59856 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oix32-0002dc-AA for submit@debbugs.gnu.org; Thu, 13 Oct 2022 08:10:48 -0400 Original-Received: from mail-oa1-f54.google.com ([209.85.160.54]:36738) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oix2z-0002dR-RZ for 58472@debbugs.gnu.org; Thu, 13 Oct 2022 08:10:46 -0400 Original-Received: by mail-oa1-f54.google.com with SMTP id 586e51a60fabf-136b5dd6655so2037093fac.3 for <58472@debbugs.gnu.org>; Thu, 13 Oct 2022 05:10:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:from:to:cc:subject:date:message-id:reply-to; bh=7z/HIHnAu11emCP0wUdQwGClkRY44LSzhEwAQoqa6nE=; b=o6ztm5hUXFrz1QXsVTLHMcsmaQOlgPS9ZCGy9qAIzdTCtLhME/cgSRrkQ/Fed7p0h0 xn5Cl9ZF7ORatKcpODFdnvkELwv7L5rb//oSNalseOPKPX6jcwDpjg0jw6hZpABNbgPS S9Jp2P13JrOnm5PmwE9BcpLCvgBN/nNz0t2oPISOXNQ09gMv1SQn2KrciNmBuliLTSK2 9M0ngDS/JO+0J4H4X1lxEanxVPVYmDs63tVT70u3rB9JYkWIJ882w6wr8QEnWbuST2tV xXgcQte7hBeVub2CG7QybvM4gCwdp5tiKuqZncAkMbnJZ9IEfNqt0KDSQ0yuL7t8NqDM o2dA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=7z/HIHnAu11emCP0wUdQwGClkRY44LSzhEwAQoqa6nE=; b=dlrkc/Tqxw75RERniaTr6C5Rl07BptKGgyq3Givg5OvLfV7l6Xb+Pp1L+daQGaxTkV 6y40KyQu0PxNYdZGM1z2InrEWittBPi8rsMjX/rlCb7NlMD/SOIFD1CHxdlqgV4hbJD0 XsP1/hpHsBe0Jey8kYZqHQTR+u56YZoMAGupXt9osVFNqU5hnZwOu//T+7pe9QicgDuC U2ZfJVC6W+ji/epd3Sa6BAUi/xCJ4AEe9HlM7L13r4GoFpJWc+03hvFDs+zb057tSae5 51dJEwarAyHJaO38zwynSGrZ3Il83JWqIInx242X9TskTAqzIoQbhLAlfBYcf2112O7Z hQ1w== X-Gm-Message-State: ACrzQf3IFhTmOYdLC6pRwdf+pn6ortAzfSHvTnFcfsMgQl2goF+MvKUd Mk4OMDpNa52ogIYj2eeD6dYjqSlPAY7x6o1cgFc= X-Google-Smtp-Source: AMsMyM4EHjR/jXRv9vgCTDAafoC0Ht1ELEqj3HcYqGPv0f9lw1lBLMBGDI0828wNXkmJ6vcLBwiUe40tlWoYdhB+cYA= X-Received: by 2002:a05:6870:d79a:b0:136:50d7:faa9 with SMTP id bd26-20020a056870d79a00b0013650d7faa9mr4973093oab.92.1665663040387; Thu, 13 Oct 2022 05:10:40 -0700 (PDT) Original-Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Thu, 13 Oct 2022 12:10:39 +0000 In-Reply-To: <87k054qq7b.fsf@rfc20.org> X-Hashcash: 1:20:221013:58472@debbugs.gnu.org::91W71/65Z8FQE+sC:3153 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:245298 Archived-At: Matt Armstrong writes: > Most email I get today to use a UUID or UUID-like Message-ID, like this: > > Message-ID: <736d10a6-001f-4a29-a1d4-554f58733b69@dfw1s10mta1086.xt.local> > Message-ID: <1815053947.8446619.1665544925708@lor1-app45123.prod.linkedin.com> > Message-ID: <01000183b9eaa6f8-411d1f4c-b573-472d-b45f-47b0c4eb6ace-000000@email.amazonses.com> > Message-ID: Those are 30-51 characters in length. I also note that Gmail uses both lower case and upper case characters. >> If we limit the length of the time string to 12 characters, and the >> total length to 25 characters (including the ".gnu" part), we still have >> a guaranteed 9 characters of random data, or 46 bits of entropy. > > I suspect that most mailers use more randomness than that. So I guess we might as well bump this up to 30 characters in total, which gives us 72 bits. The Message-IDs would look like: cnkrs75yamag1k7x8rnt3y50za.gnu@stefankangas.se cnkrifkirauwuwfkzs3rcit8cq.gnu@stefankangas.se We could go longer, but it's also nice to have something which is not an absolute abomination to look at. If we add in upper case characters too, we can encode the time with one less character. So we end up with 89 bits of randomness and this: 1Z2KnqE1t2bSgUWkcu53M34Y4y.gnu@stefankangas.se 1Z2KbUgleGoe0WRJ3jbiM0mE7W.gnu@stefankangas.se If we don't want to always start the Message-ID with the same characters (which makes them more distinct, at a glance), we could just reverse the time string: QlRXPpmK2Z1kUklxIpMNZpChOu.gnu@stefankangas.se Z59YikmK2Z1FSmYj172SAdPpuX.gnu@stefankangas.se > Some of the SHA hash algorithms are in the public domain. Could they be > added to Emacs and used for UUID generation here? We have `secure-hash'. Is that what you mean? Or do you mean to use a proper RFC 4122 UUID? All we need is for the Message-ID to be unique though, so some ad hoc solution is probably fine.