Subversion Repositories uuid_mac_utils

Compare Revisions

Regard whitespace Rev 66 → Rev 67

/trunk/index.php
3,7 → 3,7
/*
* UUID & MAC Utils
* Copyright 2017 - 2023 Daniel Marschall, ViaThinkSoft
* Version 2023-09-06
* Version 2023-09-07
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
348,7 → 348,7
NameSpaceUuid<OID> := "6ba7b812-9dad-11d1-80b4-00c04fd430c8".
NameSpaceUuid<X500> := "6ba7b814-9dad-11d1-80b4-00c04fd430c8".
 
<u>As defined by <a href="https://datatracker.ietf.org/doc/draft-ietf-uuidrev-rfc4122bis/">draft-ietf-uuidrev-rfc4122bis-11</a> Appendix B:</u><!-- TODO: When new RFC is published, replace the RFC number -->
<u>As defined by <a href="https://datatracker.ietf.org/doc/draft-ietf-uuidrev-rfc4122bis/">draft-ietf-uuidrev-rfc4122bis-11</a> Appendix B:</u>
<?php
 
$tmp = [];
358,6 → 358,7
$line .= ':= "'.$space.'".';
if (!$available) $line .= " (Currently not available on this system)";
$line .= "\n";
if (isset($tmp[$friendlyName])) continue; // Ignore "Internet Draft 12 Proposal"
$tmp[$friendlyName] = $line;
}
}
368,6 → 369,28
 
?>
 
<u>As defined in <a href="https://github.com/ietf-wg-uuidrev/rfc4122bis/issues/143#issuecomment-1709117798">Internet Draft 12 Proposal</a>:</u>
HashSpaceUuid&lt;<i>HashAlgo</i>&gt; := UUIDv5(NS_OID, OID[<i>HashAlgo</i>]).
which results in the following UUIDs:
<?php
 
$tmp = [];
foreach (get_uuidv8_hash_space_ids() as list($algo,$space,$friendlyName,$author,$available)) {
if (strpos($author,'ViaThinkSoft') === false) {
$line = str_pad('HashSpaceUuid&lt;'.htmlentities($friendlyName).'&gt;', 34, ' ', STR_PAD_RIGHT);
$line .= ':= "'.$space.'".';
if (!$available) $line .= " (Currently not available on this system)";
$line .= "\n";
$tmp[$friendlyName] = $line;
}
}
ksort($tmp);
foreach ($tmp as $line) {
echo $line;
}
 
?>
 
<u>As defined by ViaThinkSoft for all other algorithms:</u>
HashSpaceUuid&lt;<i>HashAlgo</i>&gt; := UUIDv5("1ee317e2-1853-64b2-8fe9-3c4a92df8582", <a href="https://www.php.net/manual/de/function.hash-algos.php">PhpName</a>[<i>HashAlgo</i>]).
which results in the following UUIDs:
405,12 → 428,25
<form method="GET" action="interprete_uuid.php">
<label>Hash algorithm:</label><select name="version" id="nb_version" onchange="javascript:nb_version_choose();">
<?php
 
echo "\t\t<option disabled>--- UUIDv3 (RFC 4122) ---</option>\n";
echo "\t\t<option value=\"3\">MD5</option>\n";
echo "\t\t<option disabled>--- UUIDv5 (RFC 4122) ---</option>\n";
echo "\t\t<option value=\"5\" selected>SHA1</option>\n";
 
$categories = [];
foreach (get_uuidv8_hash_space_ids() as list($algo,$space,$friendlyName,$author,$available)) {
if (!in_array($author, $categories)) $categories[] = $author;
}
sort($categories);
 
foreach ($categories as $category) {
echo "\t\t<option disabled>--- UUIDv8 (defined by ".htmlentities($category).") ---</option>\n";
$tmp = [];
$tmp['MD5'] = '<option value="3">MD5 (UUIDv3)</option>';
$tmp['SHA1'] = '<option value="5" selected>SHA1 (UUIDv5)</option>';
foreach (get_uuidv8_hash_space_ids() as list($algo,$space,$friendlyName,$author,$available)) {
if ($author != $category) continue;
if ($available) {
$tmp[$friendlyName] = '<option value="8_namebased_'.$space.'">'.htmlentities($friendlyName).' (UUIDv8 defined by '.htmlentities($author).')</option>';
$tmp[$friendlyName] = '<option value="8_namebased_'.$space.'">'.htmlentities($friendlyName).'</option>';
}
}
ksort($tmp);
417,6 → 453,7
foreach ($tmp as $html) {
echo "\t\t$html\n";
}
}
?>
</select><font size="-1"><span id="nb_hash_info"></span></font><br>
<label>Namespace:</label><select name="namespace_choose" id="nb_nsc" onchange="javascript:nb_ns_choose();">