{"id":171,"date":"2023-08-25T14:36:43","date_gmt":"2023-02-04T18:43:54","guid":{"rendered":"https:\/\/www.silicloud.com\/ja\/blog\/index.php\/2023\/11\/30\/%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%82%b5%e3%83%a0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6%e3%83%aa%e3%82%bd%e3%83%bc%e3%82%b9%e8%ad%98%e5%88%a5%e5%ad%90%e3%82%92%e7%94%9f%e6%88%90%e3%81%99\/"},"modified":"2025-07-31T21:21:25","modified_gmt":"2025-07-31T12:21:25","slug":"%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%82%b5%e3%83%a0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6%e3%83%aa%e3%82%bd%e3%83%bc%e3%82%b9%e8%ad%98%e5%88%a5%e5%ad%90%e3%82%92%e7%94%9f%e6%88%90%e3%81%99","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/ja\/blog\/%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%82%b5%e3%83%a0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6%e3%83%aa%e3%82%bd%e3%83%bc%e3%82%b9%e8%ad%98%e5%88%a5%e5%ad%90%e3%82%92%e7%94%9f%e6%88%90%e3%81%99\/","title":{"rendered":"\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u3092\u751f\u6210\u306e\u65b9\u6cd5"},"content":{"rendered":"<p>\u8457\u8005\u306f\u3001\u300eWrite for Donations\u300f\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u4e00\u74b0\u3068\u3057\u3066\u5bc4\u4ed8\u3092\u53d7\u3051\u308b\u305f\u3081\u306b\u3001\u30d5\u30ea\u30fc\u3067\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306e\u57fa\u91d1\u3092\u9078\u629e\u3057\u307e\u3057\u305f\u3002<\/p>\n<h3>\u30a4\u30f3\u30c8\u30ed\u30c0\u30af\u30b7\u30e7\u30f3<\/h3>\n<p>\u30e6\u30cb\u30fc\u30af\u306a\u8b58\u5225\u5b50\uff08UID\uff09\u307e\u305f\u306f\u8b58\u5225\u5b50\u306f\u6587\u5b57\u5217\u5024\u307e\u305f\u306f\u6574\u6570\u3067\u3042\u308a\u3001API\u958b\u767a\u8005\u306f\u3053\u308c\u3089\u3092\u4f7f\u7528\u3057\u3066API\u5185\u306e\u4e00\u610f\u306e\u30ea\u30bd\u30fc\u30b9\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u304c\u3088\u304f\u3042\u308a\u307e\u3059\u3002\u6b21\u306b\u3001API\u306e\u5229\u7528\u8005\u306f\u3053\u308c\u3089\u306e\u8b58\u5225\u5b50\u3092\u4f7f\u7528\u3057\u3066\u3001\u30ea\u30bd\u30fc\u30b9\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u304b\u3089\u5358\u4e00\u306e\u30ea\u30bd\u30fc\u30b9\u3092\u53d6\u5f97\u3057\u307e\u3059\u3002\u30e6\u30cb\u30fc\u30af\u306a\u8b58\u5225\u5b50\u304c\u306a\u3044\u5834\u5408\u3001\u30ea\u30bd\u30fc\u30b9\u3092\u5206\u96e2\u3057\u3001\u5fc5\u8981\u306a\u3082\u306e\u3068\u3057\u3066\u547c\u3073\u51fa\u3059\u3053\u3068\u306f\u307b\u307c\u4e0d\u53ef\u80fd\u3067\u3059\u3002\u8b58\u5225\u5b50\u306f\u3001\u30c6\u30fc\u30d6\u30eb\u306e\u540d\u524d\u3001\u30c6\u30fc\u30d6\u30eb\u5185\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\uff08\u5217\uff09\u307e\u305f\u306f\u5236\u7d04\u306a\u3069\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u69cb\u9020\u8981\u7d20\u3092\u53c2\u7167\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u3001\u3055\u3089\u306b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5185\u306e\u30e6\u30cb\u30fc\u30af\u306a\u30a2\u30a4\u30c6\u30e0\u306b\u5177\u4f53\u5316\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u4f8b\u3048\u3070\u3001\u30db\u30c6\u30eb\u4e88\u7d04\u30dd\u30fc\u30bf\u30eb\u306b\u95a2\u9023\u3059\u308b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3067\u306f\u3001Hotel(id)\u306f\u30e6\u30cb\u30fc\u30af\u306a\u30db\u30c6\u30eb\u3092\u53c2\u7167\u3059\u308b\u8b58\u5225\u5b50\u3092\u6307\u3059\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002Hotel(id=1234, name=&#8221;\u30cf\u30a4\u30a2\u30c3\u30c8&#8221;)\u306e\u5834\u5408\u3001ID\u304c1234\u307e\u305f\u306f\u540d\u524d\u304c&#8221;\u30cf\u30a4\u30a2\u30c3\u30c8&#8221;\u3067\u7279\u5b9a\u306e\u30db\u30c6\u30eb\u3092\u8b58\u5225\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>API\u30c7\u30b6\u30a4\u30f3\u30d1\u30bf\u30fc\u30f3\u3067\u306f\u3001\u30b8\u30e7\u30f3\u30fbJ\u30fb\u30b8\u30fc\u30a6\u30a9\u30c3\u30af\u30b9\u306f\u3001\u512a\u308c\u305f\u8b58\u5225\u5b50\u306b\u5fc5\u8981\u306a7\u3064\u306e\u57fa\u672c\u7684\u306a\u7279\u5fb4\u3092\u7279\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u308c\u3089\u306e\u7279\u5fb4\u306f\u3001\u4e00\u610f\u306eID\u3092\u751f\u6210\u3059\u308b\u969b\u306b\u8003\u616e\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n<ul class=\"post-ul\">\n<li>Easy to use: an identifier should avoid reserved characters like the forward slash (\/) as these characters perform specific meaning in URLs.<\/li>\n<li>Unique: an identifier should be able to refer to a single resource in an API.<\/li>\n<li>Fast to generate: the ID generation process should perform in a predictable manner for consistency when scaling.<\/li>\n<li>Unpredictable: when an identifier is unpredictable, it provides security benefits for vulnerability management.<\/li>\n<li>Readable: an identifier should be human-readable, which is achieved by avoiding the digit 1, lowercase L, uppercase I, or the pipe character (|) as these characters may create confusion if someone needs to check the ID manually.<\/li>\n<li>Verifiable: a checksum character can be used to verify the ID during an integrity check.<\/li>\n<li>Permanent: once assigned, the identifiers should not change.<\/li>\n<\/ul>\n<div class=\"post-conf-note\">\n<p class=\"post-conf-desc\">Note<\/p>\n<div>\u6ce8\u610f\uff1a\u8b58\u5225\u5b50\u3092\u5909\u66f4\u3059\u308b\u3068\u3001\u4e88\u671f\u3057\u306a\u3044\u6df7\u4e71\u304c\u751f\u3058\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002\u305f\u3068\u3048\u3070\u3001Hotel(id=1234, name=&#8221;Hyatt&#8221;) \u3068\u3044\u3046\u8b58\u5225\u5b50\u304c\u3042\u308a\u3001\u5f8c\u3067 Hotel(id=5678, name=&#8221;Hyatt&#8221;) \u306b\u5909\u66f4\u3055\u308c\u305f\u5834\u5408\u3001\u4ee5\u524d\u306eID\u306f\u518d\u5229\u7528\u3055\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u4ee5\u524d\u306e\u8b58\u5225\u5b50\u304c\u5229\u7528\u53ef\u80fd\u3067\u3001Hotel(id=1234, name=&#8221;Grand Villa&#8221;) \u3068\u3044\u3046\u65b0\u3057\u3044\u30db\u30c6\u30eb\u304c\u4f5c\u6210\u3055\u308c\u305f\u5834\u5408\u3001\u3053\u306e\u65b0\u3057\u3044\u30db\u30c6\u30eb\u306f\u5143\u306e\u8b58\u5225\u5b50 (1234) \u3092\u518d\u5229\u7528\u3057\u307e\u3059\u3002\u305d\u306e\u305f\u3081\u3001\u30db\u30c6\u30eb1234\u3092\u8981\u6c42\u3059\u308b\u3068\u3001\u4e88\u671f\u3057\u306a\u3044\u7d50\u679c\u304c\u5f97\u3089\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<\/div>\n<\/div>\n<p>\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u306f\u3001Node.JS\u3092\u4f7f\u7528\u3057\u3066\u3001\u3053\u308c\u3089\u306e\u7279\u5fb4\u3092\u6e80\u305f\u3059\u30e6\u30cb\u30fc\u30af\u306a\u30ab\u30b9\u30bf\u30e0\u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u3068\u95a2\u9023\u3059\u308b\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u751f\u6210\u3057\u307e\u3059\u3002\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3068\u306f\u3001\u30c7\u30b8\u30bf\u30eb\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5bfe\u3057\u3066\u30cf\u30c3\u30b7\u30e5\u95a2\u6570\u3092\u4f7f\u7528\u3057\u3066\u53d6\u5f97\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u307e\u305f\u306f\u30c7\u30b8\u30bf\u30eb\u30c7\u30fc\u30bf\u306e\u30c7\u30b8\u30bf\u30eb\u6307\u7d0b\u306e\u30cf\u30c3\u30b7\u30e5\u3067\u3059\u3002\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306e\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u306f\u3001\u8cc7\u6e90\u306b\u5bfe\u5fdc\u3059\u308b\u30d0\u30a4\u30c8\u306e\u30b5\u30a4\u30ba\u306b\u5bfe\u3057\u3066\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\uff08\u307e\u305f\u306f\u30cf\u30c3\u30b7\u30e5\u5316\uff09\u306e\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u51e6\u7406\u306b\u3088\u3063\u3066\u6d3e\u751f\u3055\u308c\u305f\u3001\u5358\u4e00\u306e\u82f1\u6570\u5b57\u6587\u5b57\u3067\u3059\u3002<\/p>\n<h2>\u5fc5\u8981\u6761\u4ef6 (\u3072\u3064\u3088\u3046\u3058\u3087\u3046\u3051\u3093)<\/h2>\n<p>\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u59cb\u3081\u308b\u524d\u306b\u3001\u4ee5\u4e0b\u306e\u3082\u306e\u304c\u5fc5\u8981\u3067\u3059\u3002<\/p>\n<ul class=\"post-ul\">\n<li>Node.js installed on your machine, which you can set up by following How To Install Node.js. This tutorial has been tested with Node.JS version 16.16.0.<\/li>\n<li>Familiarity with Node.js. Learn more in the How To Code in Node.js series.<\/li>\n<li>Familiarity with APIs. For a comprehensive tutorial on working with APIs, you can review How to Use Web APIs in Python3. Though written for Python, the article will help you understand the core concepts for working with APIs.<\/li>\n<li>A text editor that supports JavaScript syntax highlighting, such as Atom, Visual Studio Code, or Sublime Text. This tutorial uses the command line editor nano.<\/li>\n<\/ul>\n<h2>\u30b9\u30c6\u30c3\u30d71\uff1a\u30a8\u30f3\u30b3\u30fc\u30c9\u3055\u308c\u305fID\u3092\u751f\u6210\u3059\u308b<\/h2>\n<p>\u3053\u306e\u30b9\u30c6\u30c3\u30d7\u3067\u306f\u3001\u30e9\u30f3\u30c0\u30e0\u306a\u30d0\u30a4\u30c8\u304b\u3089\u4e00\u610f\u306e\u82f1\u6570\u5b57\u6587\u5b57\u5217\u306b\u8b58\u5225\u5b50\u3092\u751f\u6210\u3059\u308b\u95a2\u6570\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u8b58\u5225\u5b50\u306f\u30d9\u30fc\u30b932\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3092\u4f7f\u7528\u3057\u3066\u30a8\u30f3\u30b3\u30fc\u30c9\u3055\u308c\u307e\u3059\u304c\u3001\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306e\u5f8c\u534a\u3067\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u306f\u95a2\u9023\u4ed8\u3051\u3089\u308c\u307e\u305b\u3093\u3002\u30a8\u30f3\u30b3\u30fc\u30c9\u30d7\u30ed\u30bb\u30b9\u306b\u3088\u308a\u3001\u9078\u629e\u3057\u305f\u30d0\u30a4\u30c8\u6570\u306b\u57fa\u3065\u3044\u3066\u6307\u5b9a\u3057\u305f\u9577\u3055\u306e\u4e00\u610f\u306e\u8b58\u5225\u5b50\u304c\u4f5c\u6210\u3055\u308c\u3001\u826f\u3044\u8b58\u5225\u5b50\u306e\u3044\u304f\u3064\u304b\u306e\u7279\u5fb4\u3092\u53d6\u308a\u5165\u308c\u305fID\u304c\u69cb\u7bc9\u3055\u308c\u307e\u3059\u3002<\/p>\n<p>\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u7528\u306b\u65b0\u3057\u3044\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3057\u3066\u3001\u305d\u306e\u30d5\u30a9\u30eb\u30c0\u306b\u79fb\u52d5\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>(For this project, begin by creating a new folder and then move into that folder.)<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\"><span class=\"token function\">mkdir<\/span> <mark>checksum<\/mark><\/li>\n<li data-prefix=\"$\"><span class=\"token builtin class-name\">cd<\/span> <mark>checksum<\/mark><\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30d5\u30a9\u30eb\u30c0\u306e\u540d\u524d\u306f&#8221;checksum&#8221;\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30d5\u30a9\u30eb\u30c0\u306b\u304a\u6c17\u306b\u5165\u308a\u306e\u30a8\u30c7\u30a3\u30bf\u3092\u4f7f\u3063\u3066\u3001package.json\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3001\u958b\u3044\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\"><span class=\"token function\">nano<\/span> package.json<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u6b21\u306b\u3001\u6b21\u306e\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002 (Tsugini, tsugi no k\u014ddo o tsuika shite kudasai.)<\/p>\n<div>\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3067\u3042\u308bpackage.json<\/div>\n<pre class=\"post-pre\"><code><span class=\"token punctuation\">{<\/span>\r\n  <span class=\"token property\">\"name\"<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">\"checksum\"<\/span><span class=\"token punctuation\">,<\/span>\r\n  <span class=\"token property\">\"version\"<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">\"1.0.0\"<\/span><span class=\"token punctuation\">,<\/span>\r\n  <span class=\"token property\">\"main\"<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">\"index.js\"<\/span><span class=\"token punctuation\">,<\/span>\r\n  <span class=\"token property\">\"type\"<\/span><span class=\"token operator\">:<\/span> <span class=\"token string\">\"module\"<\/span>\r\n<span class=\"token punctuation\">}<\/span>\r\n<\/code><\/pre>\n<p>\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u3067\u306f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u540d\u3092 checksum \u3068\u5b9a\u7fa9\u3057\u3001\u30b3\u30fc\u30c9\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092 &#8220;1.0.0&#8221; \u3068\u8003\u3048\u3066\u3044\u307e\u3059\u3002\u307e\u305f\u3001\u30e1\u30a4\u30f3\u306e JavaScript \u30d5\u30a1\u30a4\u30eb\u3092 index.js \u3068\u5b9a\u7fa9\u3057\u3066\u3044\u307e\u3059\u3002package.json \u30d5\u30a1\u30a4\u30eb\u306b &#8220;type&#8221;: &#8220;module&#8221; \u304c\u3042\u308b\u5834\u5408\u3001\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3067\u306f import \u69cb\u6587\u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u3067\u306f\u3001JavaScript \u3067 JSON \u30c7\u30fc\u30bf\u5f62\u5f0f\u3092\u4f7f\u7528\u3057\u3066\u3044\u307e\u3059\u3002JSON \u306e\u53d6\u308a\u6271\u3044\u306b\u3064\u3044\u3066\u306f\u3001\u300cJavaScript \u3067 JSON \u3092\u4f7f\u7528\u3059\u308b\u65b9\u6cd5\u300d\u3067\u8a73\u3057\u304f\u5b66\u3076\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3057\u3066\u9589\u3058\u308b\u3002<\/p>\n<p>\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u306f\u3001ID\u3092\u751f\u6210\u3059\u308b\u305f\u3081\u306b\u3044\u304f\u3064\u304b\u306eNode.js\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002\u305d\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u306fcrypto\u3068base32-encode\u3067\u3001\u305d\u308c\u306b\u5bfe\u5fdc\u3059\u308b\u30c7\u30b3\u30fc\u30c0\u3067\u3042\u308bbase32-decode\u3082\u3042\u308a\u307e\u3059\u3002crypto\u30e2\u30b8\u30e5\u30fc\u30eb\u306fNode.js\u3068\u4e00\u7dd2\u306b\u30d1\u30c3\u30b1\u30fc\u30b8\u5316\u3055\u308c\u3066\u3044\u307e\u3059\u304c\u3001base32-encode\u3068base32-decode\u306f\u5f8c\u3067\u4f7f\u7528\u3059\u308b\u305f\u3081\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u306f\u3001\u6587\u5b57\uff08\u6587\u5b57\u3001\u6570\u5b57\u3001\u53e5\u8aad\u70b9\u3001\u7279\u5b9a\u306e\u8a18\u53f7\uff09\u306e\u30b7\u30fc\u30b1\u30f3\u30b9\u3092\u52b9\u7387\u7684\u306b\u4f1d\u9001\u307e\u305f\u306f\u4fdd\u5b58\u3059\u308b\u305f\u3081\u306e\u7279\u6b8a\u306a\u5f62\u5f0f\u306b\u5909\u63db\u3059\u308b\u3053\u3068\u3067\u3059\u3002\u30c7\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u306f\u305d\u306e\u9006\u306e\u30d7\u30ed\u30bb\u30b9\u3067\u3042\u308a\u3001\u30a8\u30f3\u30b3\u30fc\u30c9\u3055\u308c\u305f\u5f62\u5f0f\u3092\u5143\u306e\u6587\u5b57\u306e\u30b7\u30fc\u30b1\u30f3\u30b9\u306b\u623b\u3059\u3053\u3068\u3067\u3059\u3002Base32\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u306f32\u6587\u5b57\u306e\u30bb\u30c3\u30c8\u3092\u4f7f\u7528\u3057\u3001\u6570\u5024\u3092\u8868\u73fe\u3059\u308b\u305f\u3081\u306e\u30c6\u30ad\u30b9\u30c8\u30d9\u30fc\u30b9\u306e32\u30b7\u30f3\u30dc\u30eb\u8868\u8a18\u3067\u3059\u3002<\/p>\n<p>\u30bf\u30fc\u30df\u30ca\u30eb\u30bb\u30c3\u30b7\u30e7\u30f3\u3067\u3001\u6b21\u306e\u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30d5\u30a9\u30eb\u30c0\u30fc\u306b\u3053\u308c\u3089\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\"><span class=\"token function\">npm<\/span> i base32-encode base32-decode<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u3053\u308c\u3089\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u8ffd\u52a0\u3055\u308c\u305f\u3053\u3068\u3092\u793a\u3059\u51fa\u529b\u3092\u53d7\u3051\u53d6\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<div class=\"secondary-code-label\" title=\"Output\">Output<\/div>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>added 3 packages, and audited 5 packages in 2s found 0 vulnerabilities<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u4e2d\u306b\u554f\u984c\u304c\u767a\u751f\u3057\u305f\u5834\u5408\u306f\u3001\u30b5\u30dd\u30fc\u30c8\u306e\u305f\u3081\u306b\u300cHow To Use Node.js Modules with npm and package.json\u300d\u3092\u53c2\u7167\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u307e\u3060\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30d5\u30a9\u30eb\u30c0\u5185\u306b\u3044\u308b\u72b6\u614b\u3067\u3001index.js\u3068\u3044\u3046\u65b0\u3057\u3044\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\"><span class=\"token function\">nano<\/span> index.js<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>index.js\u30d5\u30a1\u30a4\u30eb\u306b\u4ee5\u4e0b\u306eJavaScript\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div>index.js\u3092\u65e5\u672c\u8a9e\u3067\u8a00\u3044\u63db\u3048\u308b\u3068\u3001\u6b21\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059: \u300c\u30a4\u30f3\u30c7\u30c3\u30af\u30b9.\u30b8\u30a7\u30a4\u30a8\u30b9\u300d\u3002<\/div>\n<pre class=\"post-pre\"><code><span class=\"token keyword\">import<\/span> crypto <span class=\"token keyword\">from<\/span> <span class=\"token string\">'crypto'<\/span><span class=\"token punctuation\">;<\/span>  \r\n<span class=\"token keyword\">import<\/span> base32Encode <span class=\"token keyword\">from<\/span> <span class=\"token string\">'base32-encode'<\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token keyword\">import<\/span> base32Decode <span class=\"token keyword\">from<\/span> <span class=\"token string\">'base32-decode'<\/span><span class=\"token punctuation\">;<\/span>\r\n \r\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">generate_Id<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">byte_size<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token keyword\">const<\/span> bytes <span class=\"token operator\">=<\/span> crypto<span class=\"token punctuation\">.<\/span><span class=\"token function\">randomBytes<\/span><span class=\"token punctuation\">(<\/span>byte_size<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">return<\/span> <span class=\"token function\">base32Encode<\/span><span class=\"token punctuation\">(<\/span>bytes<span class=\"token punctuation\">,<\/span> <span class=\"token string\">'Crockford'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token punctuation\">}<\/span>\r\n\r\nconsole<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'ID for byte size = 1:'<\/span><span class=\"token punctuation\">,<\/span><span class=\"token function\">generate_Id<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">'\\n'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\nconsole<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'ID for byte size = 12:'<\/span><span class=\"token punctuation\">,<\/span><span class=\"token function\">generate_Id<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">12<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">'\\n'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\nconsole<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'ID for byte size = 123:'<\/span><span class=\"token punctuation\">,<\/span><span class=\"token function\">generate_Id<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">123<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token string\">'\\n'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n<\/code><\/pre>\n<p>import\u30b3\u30de\u30f3\u30c9\u306f\u5fc5\u8981\u306a\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u8aad\u307f\u8fbc\u307f\u307e\u3059\u3002\u6570\u5024\u304b\u3089\u30d0\u30a4\u30c8\u5217\u3092\u751f\u6210\u3059\u308b\u305f\u3081\u306b\u3001\u30d0\u30a4\u30c8\u5217\u306e\u30b5\u30a4\u30ba\u3092\u53d7\u3051\u53d6\u308a\u3001crypto\u30e2\u30b8\u30e5\u30fc\u30eb\u306erandomBytes\u95a2\u6570\u3092\u4f7f\u3063\u3066\u3053\u306e\u30b5\u30a4\u30ba\u306e\u30e9\u30f3\u30c0\u30e0\u306a\u30d0\u30a4\u30c8\u5217\u3092\u4f5c\u6210\u3059\u308bgenerate_Id\u95a2\u6570\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002\u305d\u3057\u3066\u3001generate_Id\u95a2\u6570\u306f\u3053\u308c\u3089\u306e\u30d0\u30a4\u30c8\u5217\u3092Crockford\u306eBase32\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3092\u4f7f\u3063\u3066\u30a8\u30f3\u30b3\u30fc\u30c9\u3057\u307e\u3059\u3002<\/p>\n<p>\u6559\u80b2\u76ee\u7684\u306e\u305f\u3081\u306b\u3001\u3044\u304f\u3064\u304b\u306eID\u304c\u751f\u6210\u3055\u308c\u3001\u305d\u306e\u5f8c\u3001\u30b3\u30f3\u30bd\u30fc\u30eb\u306b\u30ed\u30b0\u304c\u8a18\u9332\u3055\u308c\u307e\u3059\u3002\u6b21\u306e\u624b\u9806\u3067\u306f\u3001base32\u30c7\u30b3\u30fc\u30c9\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9ID\u3092\u89e3\u8aad\u3057\u307e\u3059\u3002<\/p>\n<p>\u300cindex.js\u300d\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3057\u305f\u5f8c\u3001\u6b21\u306e\u30b3\u30de\u30f3\u30c9\u3067\u30bf\u30fc\u30df\u30ca\u30eb\u30bb\u30c3\u30b7\u30e7\u30f3\u3067\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code>node index.js\r\n<\/code><\/pre>\n<p>\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u51fa\u529b\u5fdc\u7b54\u3092\u53d7\u3051\u53d6\u308a\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<div class=\"secondary-code-label\" title=\"Output\">Output<\/div>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>ID for byte size = 1: Y8 ID for byte size = 12: JTGSEMQH2YZFD3H35HJ0 ID for byte size = 123: QW2E2KJKM8QZ7174DDB1Q3JMEKV7328EE8T79V1KG0TEAE67DEGG1XS4AR57FPCYTS24J0ZRR3E6TKM28AM8FYZ2AZTZ55C9VVQTABE0R7QRH7QBY7V3GBYBNN5D9JK0QMD9NXSWZN95S0772DHN43Q003G0QNTPA2J3AFA3P7Q167C1VNR92Z85PCDXCMEY0M7WA<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u751f\u6210\u3055\u308c\u305f\u30d0\u30a4\u30c8\u306e\u30e9\u30f3\u30c0\u30e0\u6027\u306b\u3088\u308a\u3001ID\u306e\u5024\u304c\u7570\u306a\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002\u9078\u629e\u3057\u305f\u30d0\u30a4\u30c8\u30b5\u30a4\u30ba\u306b\u5fdc\u3058\u3066\u3001\u751f\u6210\u3055\u308c\u305fID\u306e\u9577\u3055\u304c\u77ed\u304f\u306a\u308b\u3053\u3068\u3082\u3001\u9577\u304f\u306a\u308b\u3053\u3068\u3082\u3042\u308a\u307e\u3059\u3002<\/p>\n<p>index.js\u3067\u3001JavaScript\u306e\u30b3\u30e1\u30f3\u30c8\u6a5f\u80fd\u3092\u4f7f\u3063\u3066\u3001\u30b3\u30f3\u30bd\u30fc\u30eb\u51fa\u529b\u3092\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3057\u3066\u304f\u3060\u3055\u3044\uff08\u884c\u306e\u524d\u306b\u4e8c\u91cd\u30b9\u30e9\u30c3\u30b7\u30e5\/\/\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\uff09\u3002<\/p>\n<div>\u30a4\u30f3\u30c7\u30c3\u30af\u30b9.js<\/div>\n<pre class=\"post-pre\"><code><span class=\"token operator\">...<\/span>\r\n<span class=\"token comment\"><mark>\/\/<\/mark>console.log('ID for byte size = 1:',generate_Id(1), '\\n'); <\/span>\r\n<span class=\"token comment\"><mark>\/\/<\/mark>console.log('ID for byte size = 12:',generate_Id(12), '\\n');<\/span>\r\n<span class=\"token comment\"><mark>\/\/<\/mark>console.log('ID for byte size = 123:',generate_Id(123), '\\n');<\/span>\r\n<\/code><\/pre>\n<p>\u4ee5\u4e0b\u306e\u884c\u306f\u3001\u95a2\u9023\u3059\u308b\u30d0\u30a4\u30c8\u306b\u57fa\u3065\u3044\u3066\u30a8\u30f3\u30b3\u30fc\u30c9\u304c\u7570\u306a\u308b\u8b58\u5225\u5b50\u3092\u51fa\u529b\u3059\u308b\u3053\u3068\u3092\u793a\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u308c\u3089\u306e\u884c\u306f\u3001\u4ee5\u4e0b\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u4f7f\u7528\u3055\u308c\u306a\u3044\u305f\u3081\u3001\u3053\u306e\u30b3\u30fc\u30c9\u30d6\u30ed\u30c3\u30af\u3067\u306f\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3059\u308b\u304b\u3001\u5b8c\u5168\u306b\u524a\u9664\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u3053\u306e\u30b9\u30c6\u30c3\u30d7\u3067\u306f\u3001\u30e9\u30f3\u30c0\u30e0\u306a\u30d0\u30a4\u30c8\u3092\u30a8\u30f3\u30b3\u30fc\u30c9\u3057\u3066\u3001\u30a8\u30f3\u30b3\u30fc\u30c9\u3055\u308c\u305fID\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002\u6b21\u306e\u30b9\u30c6\u30c3\u30d7\u3067\u306f\u3001\u30a8\u30f3\u30b3\u30fc\u30c9\u3055\u308c\u305f\u30d0\u30a4\u30c8\u3068\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u7d44\u307f\u5408\u308f\u305b\u3066\u3001\u30e6\u30cb\u30fc\u30af\u306a\u8b58\u5225\u5b50\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<h2>\u30b9\u30c6\u30c3\u30d72 &#8211; \u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u306e\u751f\u6210<\/h2>\n<p>\u4ee5\u4e0b\u3067\u306f\u3001\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u6587\u5b57\u3092\u6301\u3064ID\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u6587\u5b57\u306e\u751f\u6210\u306f2\u3064\u306e\u624b\u9806\u3067\u884c\u308f\u308c\u307e\u3059\u3002\u6307\u793a\u306e\u305f\u3081\u306b\u3001\u5408\u6210\u95a2\u6570\u3092\u4f5c\u6210\u3059\u308b\u5404\u6a5f\u80fd\u306f\u3001\u4ee5\u4e0b\u306e\u30b5\u30d6\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u5225\u3005\u306b\u69cb\u7bc9\u3055\u308c\u307e\u3059\u3002\u307e\u305a\u3001\u30e2\u30b8\u30e5\u30ed\u6f14\u7b97\u3092\u5b9f\u884c\u3059\u308b\u95a2\u6570\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u6b21\u306b\u3001\u7d50\u679c\u3092\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u6587\u5b57\u306b\u30de\u30c3\u30d4\u30f3\u30b0\u3059\u308b\u5225\u306e\u95a2\u6570\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u30ea\u30bd\u30fc\u30b9ID\u306e\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u304c\u751f\u6210\u3055\u308c\u307e\u3059\u3002\u6700\u5f8c\u306b\u3001\u8b58\u5225\u5b50\u3068\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u691c\u8a3c\u3057\u3001\u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u304c\u6b63\u78ba\u3067\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n<h3>\u30e2\u30b8\u30e5\u30ed\u6f14\u7b97\u3092\u5b9f\u884c\u3059\u308b (Mojuro enzan wo jikk\u014d suru)<\/h3>\n<p>\u3053\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u6570\u5024ID\u306b\u5bfe\u5fdc\u3059\u308b\u30d0\u30a4\u30c8\u30920\u304b\u308936\u307e\u3067\uff08\u4e21\u7aef\u3092\u542b\u3080\uff09\u306e\u6570\u5024\u306b\u5909\u63db\u3057\u307e\u3059\u3002\u6570\u5024ID\u306b\u5bfe\u5fdc\u3059\u308b\u30d0\u30a4\u30c8\u306f\u3001BigInteger\uff08BigInt\uff09\u5024\u306b\u5909\u63db\u3057\u305f\u5272\u308a\u7b97\u306e\u4f59\u308a\u3068\u3057\u3066\u6574\u6570\u306b\u5909\u63db\u3055\u308c\u307e\u3059\u3002<\/p>\n<p>\u3053\u306e\u624b\u7d9a\u304d\u3092\u5b9f\u88c5\u3059\u308b\u306b\u306f\u3001index.js\u30d5\u30a1\u30a4\u30eb\u306e\u6700\u5f8c\u306b\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div>index.js\u304c\u5fc5\u8981\u3067\u3059\u3002<\/div>\n<pre class=\"post-pre\"><code><span class=\"token operator\">...<\/span>\r\n\r\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">calculate_checksum<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">bytes<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token keyword\">const<\/span> intValue <span class=\"token operator\">=<\/span> <span class=\"token function\">BigInt<\/span><span class=\"token punctuation\">(<\/span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`<\/span><span class=\"token string\">0x<\/span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${<\/span>bytes<span class=\"token punctuation\">.<\/span><span class=\"token function\">toString<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'hex'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token interpolation-punctuation punctuation\">}<\/span><\/span><span class=\"token template-punctuation string\">`<\/span><\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">return<\/span> <span class=\"token function\">Number<\/span><span class=\"token punctuation\">(<\/span>intValue <span class=\"token operator\">%<\/span> <span class=\"token function\">BigInt<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">37<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token punctuation\">}<\/span>\r\n<\/code><\/pre>\n<p>\u524d\u3082\u3063\u3066\u30d5\u30a1\u30a4\u30eb\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u30d0\u30a4\u30c8\u3068\u4e00\u7dd2\u306b\u6a5f\u80fdcalculate_checksum\u304c\u4f5c\u7528\u3057\u307e\u3059\u3002\u3053\u306e\u6a5f\u80fd\u306f\u30d0\u30a4\u30c8\u309216\u9032\u6570\u5024\u306b\u5909\u63db\u3057\u3001\u3055\u3089\u306bBigInteger BigInt\u5024\u306b\u5909\u63db\u3057\u307e\u3059\u3002BigInt\u30c7\u30fc\u30bf\u578b\u306f\u3001JavaScript\u306e\u30d7\u30ea\u30df\u30c6\u30a3\u30d6\u30c7\u30fc\u30bf\u578bnumber\u3067\u8868\u3055\u308c\u308b\u3088\u308a\u3082\u5927\u304d\u306a\u6570\u5024\u3092\u8868\u3057\u307e\u3059\u3002\u305f\u3068\u3048\u3070\u3001\u6574\u6570\u306e37\u306f\u6bd4\u8f03\u7684\u5c0f\u3055\u3044\u3067\u3059\u304c\u3001\u30e2\u30b8\u30e5\u30ed\u6f14\u7b97\u306e\u305f\u3081\u306bBigInt\u306b\u5909\u63db\u3055\u308c\u307e\u3059\u3002<\/p>\n<p>\u3053\u306e\u5909\u63db\u3092\u9054\u6210\u3059\u308b\u305f\u3081\u306b\u3001\u307e\u305a intValue \u5909\u6570\u3092 BigInt \u5909\u63db\u30e1\u30bd\u30c3\u30c9\u3067\u8a2d\u5b9a\u3057\u3001toString \u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u30d0\u30a4\u30c8\u309216\u9032\u6570\u306b\u8a2d\u5b9a\u3057\u307e\u3059\u3002\u6b21\u306b\u3001intValue \u3068 BigInt \u306e\u9593\u306e\u5270\u4f59\u3092\u3001\u30b5\u30f3\u30d7\u30eb\u5024 37 \u3092\u7528\u3044\u3066 % \u8a18\u53f7\u3067\u8a08\u7b97\u3057\u3001Number \u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3067\u6570\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002\u3053\u306e\u6574\u6570\u5024\uff08\u3053\u306e\u4f8b\u3067\u306f37\uff09\u306f\u3001\u81ea\u4f5c\u306e\u82f1\u6570\u5b57\u6587\u5b57\u5217\u304b\u3089\u82f1\u6570\u5b57\u6587\u5b57\u3092\u9078\u629e\u3059\u308b\u305f\u3081\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3068\u3057\u3066\u6a5f\u80fd\u3057\u307e\u3059\u3002<\/p>\n<p>intValue\u306e\u5024\u304c123\u3067\u3042\u308b\u5834\u5408\u3001\u30e2\u30b8\u30e5\u30fc\u30eb\u6f14\u7b97\u306f123 % 37\u3068\u306a\u308a\u307e\u3059\u3002\u3053\u306e\u6f14\u7b97\u306e\u7d50\u679c\u3001\u6574\u6570\u5024\u304c37\u306e\u5834\u5408\u3001\u4f59\u308a\u306f12\u3067\u5546\u306f3\u3068\u306a\u308a\u307e\u3059\u3002\u30ea\u30bd\u30fc\u30b9ID\u306e\u5024\u304c154\u306e\u5834\u5408\u3001\u6f14\u7b97154 % 37\u306f\u4f59\u308a\u304c6\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u3053\u306e\u6a5f\u80fd\u306f\u3001\u5165\u529b\u3055\u308c\u305f\u30d0\u30a4\u30c8\u3092\u30e2\u30b8\u30e5\u30ed\u306e\u7d50\u679c\u306b\u30de\u30c3\u30d4\u30f3\u30b0\u3057\u307e\u3059\u3002\u6b21\u306b\u3001\u30e2\u30b8\u30e5\u30ed\u306e\u7d50\u679c\u3092\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u6587\u5b57\u306b\u30de\u30c3\u30d4\u30f3\u30b0\u3059\u308b\u95a2\u6570\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n<h3>\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u6587\u5b57\u306e\u53d6\u5f97<\/h3>\n<p>\u524d\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u5270\u4f59\u306e\u7d50\u679c\u3092\u53d6\u5f97\u3057\u305f\u5f8c\u3001\u305d\u308c\u3092\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u6587\u5b57\u306b\u30de\u30c3\u30d4\u30f3\u30b0\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u4ee5\u524d\u306e\u30b3\u30fc\u30c9\u306e\u3059\u3050\u4e0b\u306b\u3001\u4ee5\u4e0b\u306e\u884c\u306e\u30b3\u30fc\u30c9\u3092index.js\u30d5\u30a1\u30a4\u30eb\u306b\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div>\u30a4\u30f3\u30c7\u30c3\u30af\u30b9.js<\/div>\n<pre class=\"post-pre\"><code><span class=\"token operator\">...<\/span>\r\n\r\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">get_checksum_character<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">checksumValue<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token keyword\">const<\/span> alphabet <span class=\"token operator\">=<\/span> <span class=\"token string\">'0123456789ABCDEFG'<\/span> <span class=\"token operator\">+<\/span>\r\n        <span class=\"token string\">'HJKMNPQRSTVWXYZ*~$=U'<\/span><span class=\"token punctuation\">;<\/span>  \r\n    <span class=\"token keyword\">return<\/span> alphabet<span class=\"token punctuation\">[<\/span>Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">abs<\/span><span class=\"token punctuation\">(<\/span>checksumValue<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ <\/span>\r\n<span class=\"token punctuation\">}<\/span>\r\n<\/code><\/pre>\n<p>\u95a2\u6570get_checksum_character\u306b\u304a\u3044\u3066\u3001\u30d1\u30e9\u30e1\u30fc\u30bf\u3068\u3057\u3066checksumValue\u3092\u547c\u3073\u51fa\u3057\u307e\u3059\u3002\u3053\u306e\u95a2\u6570\u5185\u3067\u3001\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8\u6587\u5b57\u304b\u3089\u306a\u308b\u30ab\u30b9\u30bf\u30e0\u306e\u6587\u5b57\u5217\u5b9a\u6570\u300calphabet\u300d\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002checksumValue\u306e\u8a2d\u5b9a\u5024\u306b\u3088\u3063\u3066\u3001\u3053\u306e\u95a2\u6570\u306f\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8\u5b9a\u6570\u304b\u3089\u5b9a\u7fa9\u3055\u308c\u305f\u6587\u5b57\u5217\u3068checksumValue\u306e\u7d76\u5bfe\u5024\u3092\u5bfe\u5fdc\u3055\u305b\u305f\u5024\u3092\u8fd4\u3057\u307e\u3059\u3002<\/p>\n<p>\u6b21\u306b\u3001\u3053\u308c\u3089\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u66f8\u304b\u308c\u305f2\u3064\u306e\u95a2\u6570\u3092\u4f7f\u7528\u3057\u3066\u3001\u30d0\u30a4\u30c8\u306e\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3068\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u6587\u5b57\u3092\u7d44\u307f\u5408\u308f\u305b\u3066ID\u3092\u751f\u6210\u3059\u308b\u95a2\u6570\u3092\u66f8\u304d\u307e\u3059\u3002<\/p>\n<p>index.js\u30d5\u30a1\u30a4\u30eb\u306b\u6b21\u306e\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div>index.js\u306e\u5185\u5bb9\u3092\u65e5\u672c\u8a9e\u3067\u8ff0\u3079\u308b\u3068\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/div>\n<pre class=\"post-pre\"><code><span class=\"token operator\">...<\/span> \r\n\r\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">generate_Id_with_checksum<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">bytes_size<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token keyword\">const<\/span> bytes <span class=\"token operator\">=<\/span> crypto<span class=\"token punctuation\">.<\/span><span class=\"token function\">randomBytes<\/span><span class=\"token punctuation\">(<\/span>bytes_size<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">const<\/span> checksum <span class=\"token operator\">=<\/span> <span class=\"token function\">calculate_checksum<\/span><span class=\"token punctuation\">(<\/span>bytes<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">const<\/span> checksumChar <span class=\"token operator\">=<\/span> <span class=\"token function\">get_checksum_character<\/span><span class=\"token punctuation\">(<\/span>checksum<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"checksum character: \"<\/span><span class=\"token punctuation\">,<\/span> checksumChar<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> \r\n    <span class=\"token keyword\">const<\/span> encoded <span class=\"token operator\">=<\/span> <span class=\"token function\">base32Encode<\/span><span class=\"token punctuation\">(<\/span>bytes<span class=\"token punctuation\">,<\/span> <span class=\"token string\">'Crockford'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">return<\/span> encoded <span class=\"token operator\">+<\/span> checksumChar<span class=\"token punctuation\">;<\/span>\r\n<span class=\"token punctuation\">}<\/span>\r\n\r\n<span class=\"token keyword\">const<\/span> Hotel_resource_id <span class=\"token operator\">=<\/span><span class=\"token function\">generate_Id_with_checksum<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">132<\/span><span class=\"token punctuation\">)<\/span>\r\nconsole<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Hotel resource id: \"<\/span><span class=\"token punctuation\">,<\/span>Hotel_resource_id<span class=\"token punctuation\">)<\/span>\r\n<\/code><\/pre>\n<p>\u3053\u306e\u30b3\u30fc\u30c9\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u306f\u3001\u4ee5\u524d\u306e2\u3064\u306e\u95a2\u6570 calculate_checksum \u3068 get_checksum_character\uff08\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u6587\u5b57\u3092\u751f\u6210\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u308b\u95a2\u6570\uff09\u3092\u3001\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u95a2\u6570\u3068\u7d44\u307f\u5408\u308f\u305b\u3066\u65b0\u3057\u3044\u95a2\u6570 generate_Id_with_checksum \u306b\u7d71\u5408\u3057\u307e\u3059\u3002\u3053\u306e\u95a2\u6570\u306f\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u6587\u5b57\u3092\u542b\u3080ID\u3092\u751f\u6210\u3057\u307e\u3059\u3002<\/p>\n<p>\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3057\u3066\u3001\u5225\u306e\u30bf\u30fc\u30df\u30ca\u30eb\u30bb\u30c3\u30b7\u30e7\u30f3\u3067\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\"><span class=\"token function\">node<\/span> index.js<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u3053\u308c\u306b\u4f3c\u305f\u51fa\u529b\u304c\u53d7\u3051\u53d6\u308c\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<div class=\"secondary-code-label\" title=\"Output\">Output<\/div>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>checksum character: <mark>B<\/mark> Hotel resource id: 9V99B9P55K7M4DN5XYP4VTJYJGENZKJ0F9Q6EEEZ07X49G0V14AXJS3RYXBT3J1WJZXWGM76C6H7G895TJT27AW77BHBX2D16QNQ2ZNBY9MQHWG9NJ1WWVTNRCKRBX6HC3M7BB3JG0V413VJ767JN6FT0GFS5VQJ9X7KSP1KM29B02NAGXN3FP30WA8Y63N1XJAMGDPEE1RNHRTWH6P0<mark>B<\/mark><\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u540c\u3058\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u6587\u5b57\u304cID\u306e\u6700\u5f8c\u306b\u8868\u793a\u3055\u308c\u3066\u304a\u308a\u3001\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u304c\u4e00\u81f4\u3057\u3066\u3044\u308b\u3053\u3068\u3092\u793a\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u3053\u306e\u56f3\u5f0f\u306e\u30c1\u30e3\u30fc\u30c8\u306f\u3001\u3053\u306e\u8907\u5408\u95a2\u6570\u304c\u3069\u306e\u3088\u3046\u306b\u69cb\u9020\u7684\u306b\u6a5f\u80fd\u3059\u308b\u304b\u3092\u793a\u3057\u3066\u3044\u307e\u3059\u3002 (Kono zu shiki no ch\u0101to wa, kono fukug\u014d kans\u016b ga dono y\u014d ni k\u014dz\u014dteki ni kin\u014d suru ka o shimeshiteimasu.)<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/656460ebdaa94e2bdf7b2d7c\/73-0.png\" alt=\"A chart with Product ID at the top. It points to Crypto method, which points to Bytes. There are two branches from Bytes: base32-decode and Modulo process. The base32-decode branch points to the Encoded ID, whereas the Modulo process branch points to the Checksum. When the Encoded ID and Checksum are paired, they become the Resource ID.\" \/><\/div>\n<p>\u3053\u306e\u30d5\u30ed\u30fc\u30c1\u30e3\u30fc\u30c8\u306f\u3001\u30ea\u30bd\u30fc\u30b9\u7528\u306b\u30ab\u30a6\u30f3\u30bf\u30fc\u306b\u3088\u3063\u3066\u624b\u52d5\u3067\u4f5c\u6210\u3055\u308c\u305f\u8b58\u5225\u5b50\u3067\u3042\u308b\u88fd\u54c1ID\u304c\u3001\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u304a\u3088\u3073\u30e2\u30b8\u30e5\u30ed\u6f14\u7b97\u306e\u30d7\u30ed\u30bb\u30b9\u3092\u7d4c\u3066\u3001\u4e00\u610f\u306e\u30ea\u30bd\u30fc\u30b9ID\u306b\u5909\u63db\u3055\u308c\u308b\u3053\u3068\u3092\u793a\u3057\u3066\u3044\u307e\u3059\u3002\u56f3\u4e2d\u306ecrypto\u30e1\u30bd\u30c3\u30c9\u306f\u3001crypto.randomBytes()\u95a2\u6570\u3092\u6307\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u30d0\u30a4\u30c8\u30b5\u30a4\u30ba\u306b\u57fa\u3065\u3044\u3066\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u6587\u5b57\u3092\u542b\u3080ID\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001ID\u306e\u6574\u5408\u6027\u3092base32\u30c7\u30b3\u30fc\u30c9\u3067\u691c\u8a3c\u3059\u308b\u305f\u3081\u306e\u8b58\u5225\u5b50\u95a2\u6570\u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002<\/p>\n<h3>\u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30d5\u30a1\u30a4\u30a2\u306e\u6b63\u5f53\u6027\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/h3>\n<p>\u5b8c\u5168\u6027\u3092\u78ba\u4fdd\u3059\u308b\u305f\u3081\u306b\u3001\u65b0\u3057\u3044\u300cverify_Id\u300d\u3068\u3044\u3046\u95a2\u6570\u3092\u4f7f\u7528\u3057\u3066\u3001\u8b58\u5225\u5b50\u306e\u6700\u5f8c\u306e\u6587\u5b57\u3067\u3042\u308b\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u6587\u5b57\u3068\u751f\u6210\u3055\u308c\u305f\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u6bd4\u8f03\u3057\u307e\u3059\u3002\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u6587\u5b57\u3092\u6bd4\u8f03\u3059\u308b\u3053\u3068\u306f\u3001\u5143\u306eID\u306e\u5b8c\u5168\u6027\u3092\u78ba\u8a8d\u3057\u3001\u6539\u3056\u3093\u3055\u308c\u3066\u3044\u306a\u3044\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306b\u91cd\u8981\u306a\u30b9\u30c6\u30c3\u30d7\u3067\u3059\u3002<\/p>\n<p>index.js\u30d5\u30a1\u30a4\u30eb\u306b\u3053\u308c\u3089\u306e\u884c\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div>index.js\u3092\u65e5\u672c\u8a9e\u306b\u7ffb\u8a33\u305b\u3088\u3002<\/div>\n<pre class=\"post-pre\"><code><span class=\"token operator\">...<\/span>\r\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">verify_Id<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">identifier<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token keyword\">const<\/span> value <span class=\"token operator\">=<\/span> identifier<span class=\"token punctuation\">.<\/span><span class=\"token function\">substring<\/span><span class=\"token punctuation\">(<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> identifier<span class=\"token punctuation\">.<\/span>length<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">const<\/span> checksum_char <span class=\"token operator\">=<\/span> identifier<span class=\"token punctuation\">[<\/span>identifier<span class=\"token punctuation\">.<\/span>length<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>     \r\n    <span class=\"token keyword\">const<\/span> buffer <span class=\"token operator\">=<\/span> Buffer<span class=\"token punctuation\">.<\/span><span class=\"token function\">from<\/span><span class=\"token punctuation\">(<\/span> <span class=\"token function\">base32Decode<\/span><span class=\"token punctuation\">(<\/span>value<span class=\"token punctuation\">,<\/span> <span class=\"token string\">'Crockford'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">const<\/span> calculated_checksum_char <span class=\"token operator\">=<\/span> <span class=\"token function\">get_checksum_character<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">calculate_checksum<\/span><span class=\"token punctuation\">(<\/span>buffer<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span>calculated_checksum_char<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">const<\/span> flag <span class=\"token operator\">=<\/span>calculated_checksum_char<span class=\"token operator\">==<\/span> checksum_char<span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">return<\/span> <span class=\"token punctuation\">(<\/span>flag<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>    \r\n     <span class=\"token punctuation\">}<\/span>\r\nconsole<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'\\n'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\nconsole<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"computing checksum\"<\/span><span class=\"token punctuation\">)<\/span>\r\n<span class=\"token keyword\">const<\/span> flag <span class=\"token operator\">=<\/span> <span class=\"token function\">verify_Id<\/span><span class=\"token punctuation\">(<\/span>Hotel_resource_id<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>flag<span class=\"token punctuation\">)<\/span> console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Checksums matched.\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token keyword\">else<\/span> console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Checksums did not match.\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n<\/code><\/pre>\n<p>verify_Id\u95a2\u6570\u306f\u3001\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u3067ID\u306e\u6574\u5408\u6027\u3092\u30c1\u30a7\u30c3\u30af\u3057\u307e\u3059\u3002\u8b58\u5225\u5b50\u306e\u6b8b\u308a\u306e\u6587\u5b57\u306f\u30d0\u30c3\u30d5\u30a1\u306b\u30c7\u30b3\u30fc\u30c9\u3055\u308c\u3001\u305d\u306e\u5f8c\u3001\u3053\u306e\u30d0\u30c3\u30d5\u30a1\u4e0a\u3067calculate_checksum\u3068get_checksum_character\u304c\u9806\u6b21\u5b9f\u884c\u3055\u308c\u3001\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u6587\u5b57\u3092\u53d6\u5f97\u3057\u307e\u3059\uff08calculated_checksum_char == checksum_char\u3067\u6bd4\u8f03\u3055\u308c\u307e\u3059\uff09\u3002<\/p>\n<p>\u3053\u306e\u6a21\u5f0f\u56f3\u306f\u3001\u5408\u6210\u95a2\u6570\u306e\u4ed5\u7d44\u307f\u3092\u793a\u3057\u3066\u3044\u307e\u3059\u3002 (Kono moshidezu wa, g\u014dsei kans\u016b no shikumi o shimeshiteimasu.)<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/656460ebdaa94e2bdf7b2d7c\/83-0.png\" alt=\"A chart with Resource ID at the top. It points to Slicing Method, which has two branches: Value and Checkum. The Value branch points to the base32-decode, which then becomes a Decoded checksum. The Checksum branch points to a Checksum. If the Decoded checksum and the Checksum match, it results in Verification.\" \/><\/div>\n<p>\u3053\u306e\u30c1\u30e3\u30fc\u30c8\u3067\u306f\u3001\u30b9\u30e9\u30a4\u30b9\u3068\u306fID\u5024\uff08value\uff09\u3092\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u6587\u5b57\uff08checksum\uff09\u304b\u3089\u5206\u96e2\u3059\u308b\u3053\u3068\u3092\u610f\u5473\u3057\u307e\u3059\u3002\u4ee5\u524d\u306e\u30b3\u30fc\u30c9\u30d6\u30ed\u30c3\u30af\u3067\u306f\u3001\u95a2\u6570identifier.substring(0, identifier.length-1)\u304cID\u5024\u3092\u53d6\u5f97\u3057\u3001identifier[identifier.length-1]\u304c\u30ea\u30bd\u30fc\u30b9ID\u304b\u3089\u6700\u5f8c\u306e\u6587\u5b57\u3092\u53d6\u5f97\u3057\u307e\u3059\u3002<\/p>\n<p>\u3042\u306a\u305f\u306eindex.js\u30d5\u30a1\u30a4\u30eb\u306f\u3001\u6b21\u306e\u30b3\u30fc\u30c9\u3068\u4e00\u81f4\u3059\u308b\u3079\u304d\u3067\u3059\u3002<\/p>\n<div>index.js\u3092\u65e5\u672c\u8a9e\u3067\u81ea\u7136\u306b\u8a00\u3044\u63db\u3048\u3066\u304f\u3060\u3055\u3044\u30011\u3064\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3060\u3051\u5fc5\u8981\u3067\u3059 :<br \/>\n\u30a4\u30f3\u30c7\u30c3\u30af\u30b9.js<\/div>\n<pre class=\"post-pre\"><code><span class=\"token keyword\">import<\/span> crypto <span class=\"token keyword\">from<\/span> <span class=\"token string\">'crypto'<\/span><span class=\"token punctuation\">;<\/span>  <span class=\"token comment\">\/\/ for generating bytes from the number<\/span>\r\n<span class=\"token keyword\">import<\/span> base32Encode <span class=\"token keyword\">from<\/span> <span class=\"token string\">'base32-encode'<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ for encoding the bytes into Unique ID as string type<\/span>\r\n<span class=\"token keyword\">import<\/span> base32Decode <span class=\"token keyword\">from<\/span> <span class=\"token string\">'base32-decode'<\/span><span class=\"token punctuation\">;<\/span><span class=\"token comment\">\/\/ for decoding the ID into bytes<\/span>\r\n\r\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">generate_Id<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">byte_size<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token keyword\">const<\/span> bytes <span class=\"token operator\">=<\/span> crypto<span class=\"token punctuation\">.<\/span><span class=\"token function\">randomBytes<\/span><span class=\"token punctuation\">(<\/span>byte_size<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">return<\/span> <span class=\"token function\">base32Encode<\/span><span class=\"token punctuation\">(<\/span>bytes<span class=\"token punctuation\">,<\/span> <span class=\"token string\">'Crockford'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token punctuation\">}<\/span>\r\n\r\n<span class=\"token comment\">\/\/console.log('ID for byte size = 1:',generate_Id(1), '\\n');<\/span>\r\n<span class=\"token comment\">\/\/console.log('ID for byte size = 12:',generate_Id(12), '\\n');<\/span>\r\n<span class=\"token comment\">\/\/console.log('ID for byte size = 123:',generate_Id(123), '\\n');<\/span>\r\n\r\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">calculate_checksum<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">bytes<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token keyword\">const<\/span> intValue <span class=\"token operator\">=<\/span> <span class=\"token function\">BigInt<\/span><span class=\"token punctuation\">(<\/span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`<\/span><span class=\"token string\">0x<\/span><span class=\"token interpolation\"><span class=\"token interpolation-punctuation punctuation\">${<\/span>bytes<span class=\"token punctuation\">.<\/span><span class=\"token function\">toString<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'hex'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token interpolation-punctuation punctuation\">}<\/span><\/span><span class=\"token template-punctuation string\">`<\/span><\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">return<\/span> <span class=\"token function\">Number<\/span><span class=\"token punctuation\">(<\/span>intValue <span class=\"token operator\">%<\/span> <span class=\"token function\">BigInt<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">37<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token punctuation\">}<\/span>\r\n\r\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">get_checksum_character<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">checksumValue<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token keyword\">const<\/span> alphabet <span class=\"token operator\">=<\/span> <span class=\"token string\">'0123456789ABCDEFG'<\/span> <span class=\"token operator\">+<\/span>\r\n        <span class=\"token string\">'HJKMNPQRSTVWXYZ*~$=U'<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ custom-built string  consisting of alphanumeric character<\/span>\r\n    <span class=\"token keyword\">return<\/span> alphabet<span class=\"token punctuation\">[<\/span>Math<span class=\"token punctuation\">.<\/span><span class=\"token function\">abs<\/span><span class=\"token punctuation\">(<\/span>checksumValue<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/ picking out an alphanumeric character<\/span>\r\n<span class=\"token punctuation\">}<\/span>\r\n\r\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">generate_Id_with_checksum<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">bytes_size<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token keyword\">const<\/span> bytes <span class=\"token operator\">=<\/span> crypto<span class=\"token punctuation\">.<\/span><span class=\"token function\">randomBytes<\/span><span class=\"token punctuation\">(<\/span>bytes_size<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">const<\/span> checksum <span class=\"token operator\">=<\/span> <span class=\"token function\">calculate_checksum<\/span><span class=\"token punctuation\">(<\/span>bytes<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">const<\/span> checksumChar <span class=\"token operator\">=<\/span> <span class=\"token function\">get_checksum_character<\/span><span class=\"token punctuation\">(<\/span>checksum<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"checksum character: \"<\/span><span class=\"token punctuation\">,<\/span> checksumChar<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> \r\n    <span class=\"token keyword\">const<\/span> encoded <span class=\"token operator\">=<\/span> <span class=\"token function\">base32Encode<\/span><span class=\"token punctuation\">(<\/span>bytes<span class=\"token punctuation\">,<\/span> <span class=\"token string\">'Crockford'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">return<\/span> encoded <span class=\"token operator\">+<\/span> checksumChar<span class=\"token punctuation\">;<\/span>\r\n<span class=\"token punctuation\">}<\/span>\r\n\r\n<span class=\"token keyword\">const<\/span> Hotel_resource_id <span class=\"token operator\">=<\/span><span class=\"token function\">generate_Id_with_checksum<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">132<\/span><span class=\"token punctuation\">)<\/span>\r\nconsole<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Hotel resource id: \"<\/span><span class=\"token punctuation\">,<\/span>Hotel_resource_id<span class=\"token punctuation\">)<\/span>\r\n\r\n<span class=\"token keyword\">function<\/span> <span class=\"token function\">verify_Id<\/span><span class=\"token punctuation\">(<\/span><span class=\"token parameter\">identifier<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token keyword\">const<\/span> value <span class=\"token operator\">=<\/span> identifier<span class=\"token punctuation\">.<\/span><span class=\"token function\">substring<\/span><span class=\"token punctuation\">(<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span> identifier<span class=\"token punctuation\">.<\/span>length<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">const<\/span> checksum_char <span class=\"token operator\">=<\/span> identifier<span class=\"token punctuation\">[<\/span>identifier<span class=\"token punctuation\">.<\/span>length<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span> \r\n    <span class=\"token comment\">\/\/console.log(value,checksum_char);<\/span>\r\n    <span class=\"token keyword\">const<\/span> buffer <span class=\"token operator\">=<\/span> Buffer<span class=\"token punctuation\">.<\/span><span class=\"token function\">from<\/span><span class=\"token punctuation\">(<\/span> <span class=\"token function\">base32Decode<\/span><span class=\"token punctuation\">(<\/span>value<span class=\"token punctuation\">,<\/span> <span class=\"token string\">'Crockford'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">const<\/span> calculated_checksum_char <span class=\"token operator\">=<\/span> <span class=\"token function\">get_checksum_character<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">calculate_checksum<\/span><span class=\"token punctuation\">(<\/span>buffer<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span>calculated_checksum_char<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">const<\/span> flag <span class=\"token operator\">=<\/span>calculated_checksum_char<span class=\"token operator\">==<\/span> checksum_char<span class=\"token punctuation\">;<\/span>\r\n\r\n    <span class=\"token keyword\">return<\/span> <span class=\"token punctuation\">(<\/span>flag<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    \r\n     <span class=\"token punctuation\">}<\/span>\r\n\r\nconsole<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'\\n'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\nconsole<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"computing checksum\"<\/span><span class=\"token punctuation\">)<\/span>\r\n<span class=\"token keyword\">const<\/span> flag <span class=\"token operator\">=<\/span> <span class=\"token function\">verify_Id<\/span><span class=\"token punctuation\">(<\/span>Hotel_resource_id<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>flag<span class=\"token punctuation\">)<\/span> console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Checksums matched.\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token keyword\">else<\/span> console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Checksums did not match.\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n<\/code><\/pre>\n<p>\u4eca\u3001\u3053\u306e\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code>node index.js\r\n<\/code><\/pre>\n<p>\u6b21\u306e\u51fa\u529b\u3092\u53d7\u3051\u53d6\u308a\u307e\u3059\uff1a<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<div class=\"secondary-code-label\" title=\"Output\">Output<\/div>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&#8230; computing checksum AW75SY7FVC7TKT7VP5ZF0M8C67CN36YZK27BXHVFHSDXJFKH54HK2AXQFMPN89Q5YQRPGNHGAYQ5JFKVD40EKTXCET97Q0FEPX6MX1ZTNWGCA08SBRSHP8B0037ACJG6F6472FEVARCAWM6P5MRJ2F6WTRPXHYS9N1JEDZVH41D33RA5365VNFC5G5VYEFPFJJD8151B28XXDBRHAF80 H H Checksums matched.<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u4ee5\u4e0b\u306f\u65e5\u672c\u8a9e\u3067\u306e\u4e00\u3064\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3059\uff1a<\/p>\n<p>\u73fe\u5728\u3001checksum \u6587\u5b57\u3092\u4f7f\u7528\u3057\u3066\u8b58\u5225\u5b50\u306e\u6574\u5408\u6027\u3092\u78ba\u8a8d\u3059\u308b verify_Id \u3068\u3044\u3046\u95a2\u6570\u304c\u3042\u308a\u307e\u3059\u3002\u6b21\u306b\u3001\u6559\u80b2\u76ee\u7684\u3067\u30ea\u30bd\u30fc\u30b9 ID \u3092\u5909\u66f4\u3059\u308b\u3053\u3068\u3067\u3001\u30c1\u30a7\u30c3\u30af\u304c\u5931\u6557\u3057\u305f\u5834\u5408\u306e\u6319\u52d5\u3092\u8a55\u4fa1\u3059\u308b\u305f\u3081\u306e\u7d50\u679c\u304c\u4e00\u81f4\u3057\u306a\u3044\u7d50\u679c\u304c\u95a2\u6570\u304b\u3089\u8fd4\u3055\u308c\u308b\u3088\u3046\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<h2>\uff08\u30aa\u30d7\u30b7\u30e7\u30f3\uff09\u30b9\u30c6\u30c3\u30d73 \u2014 \u4e00\u81f4\u3057\u306a\u3044\u7d50\u679c\u306e\u305f\u3081\u306e\u8b58\u5225\u5b50\u306e\u5909\u66f4<\/h2>\n<p>\u73fe\u5728\u3001\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u304c\u4e00\u81f4\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306b\u3001\u8b58\u5225\u5b50\u306e\u5024\u3092\u5909\u66f4\u3057\u307e\u3059\u3002\u3053\u306e\u30b9\u30c6\u30c3\u30d7\u3067\u306e\u5909\u66f4\u306f\u3001ID\u5185\u306e\u4efb\u610f\u306e\u6587\u5b57\u304c\u64cd\u4f5c\u3055\u308c\u308b\u3068\u3001\u5e38\u306b\u4e00\u81f4\u3057\u306a\u3044\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u306b\u306a\u308a\u307e\u3059\u3002\u3053\u306e\u3088\u3046\u306a\u5909\u66f4\u306f\u3001\u4f1d\u9001\u30a8\u30e9\u30fc\u3084\u60aa\u610f\u306e\u3042\u308b\u884c\u52d5\u304b\u3089\u751f\u3058\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002\u305f\u3060\u3057\u3001\u3053\u306e\u5909\u66f4\u306f\u88fd\u54c1\u306e\u30d3\u30eb\u30c9\u306b\u306f\u63a8\u5968\u3055\u308c\u307e\u305b\u3093\u3002\u975e\u4e00\u81f4\u3059\u308b\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u306e\u7d50\u679c\u3092\u8a55\u4fa1\u3059\u308b\u305f\u3081\u306e\u6559\u80b2\u76ee\u7684\u3067\u306e\u307f\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>index.js \u30d5\u30a1\u30a4\u30eb\u3067\u3001\u30db\u30c6\u30eb\u306e\u30ea\u30bd\u30fc\u30b9 ID \u3092\u5909\u66f4\u3059\u308b\u305f\u3081\u306b\u3001\u4ee5\u4e0b\u306e\u884c\u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div>\u30a4\u30f3\u30c7\u30c3\u30af\u30b9.js<\/div>\n<pre class=\"post-pre\"><code><span class=\"token operator\">...<\/span>\r\n<mark><span class=\"token keyword\">const<\/span> altered_Hotel_resource_id<span class=\"token operator\">=<\/span> Hotel_resource_id<span class=\"token punctuation\">.<\/span><span class=\"token function\">replace<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">'P'<\/span><span class=\"token punctuation\">,<\/span><span class=\"token string\">'H'<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>  <\/mark> \r\nconsole<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"computing checksum\"<\/span><span class=\"token punctuation\">)<\/span>\r\n<span class=\"token keyword\">const<\/span> flag <span class=\"token operator\">=<\/span> <span class=\"token function\">verify_Id<\/span><span class=\"token punctuation\">(<\/span><mark>altered<\/mark>_Hotel_resource_id<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>flag<span class=\"token punctuation\">)<\/span> console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Checksum matched.\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token keyword\">else<\/span> console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Checksums did not match.\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n<\/code><\/pre>\n<p>\u4e0a\u8a18\u306e\u30b3\u30fc\u30c9\u3067\u306f\u3001ID\u5185\u306e\u3044\u304b\u306a\u308bP\u3082H\u306b\u7f6e\u304d\u63db\u3048\u3001\u5909\u6570\u540d\u3092Hotel_resource_ID\u304b\u3089altered_Hotel_resource_id\u306b\u5909\u66f4\u3057\u307e\u3059\u3002\u518d\u5ea6\u8a00\u3044\u307e\u3059\u304c\u3001\u3053\u308c\u3089\u306e\u5909\u66f4\u306f\u60c5\u5831\u306e\u76ee\u7684\u3067\u3042\u308a\u3001\u4e00\u81f4\u306e\u6574\u5408\u6027\u3092\u78ba\u4fdd\u3059\u308b\u305f\u3081\u306b\u3053\u306e\u30b9\u30c6\u30c3\u30d7\u306e\u7d42\u308f\u308a\u306b\u5143\u306b\u623b\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u30d5\u30a1\u30a4\u30eb\u3092\u4fdd\u5b58\u3057\u3001\u305d\u306e\u5f8c\u30ea\u30bd\u30fc\u30b9ID\u306e\u5909\u66f4\u3092\u884c\u3063\u305f\u30b3\u30fc\u30c9\u3092\u518d\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<ol>\n<li data-prefix=\"$\"><span class=\"token function\">node<\/span> index.js<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u300c\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u304c\u4e00\u81f4\u3057\u306a\u3044\u3068\u3044\u3046\u51fa\u529b\u3092\u53d7\u3051\u53d6\u308a\u307e\u3059\u3002\u300d<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<div class=\"secondary-code-label\" title=\"Output\">Output<\/div>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>Checksums did not match.<\/p>\n<pre class=\"post-pre\"><code><\/code><\/pre>\n<p>\u3053\u306e\u30b9\u30c6\u30c3\u30d7\u3067\u306f\u3001\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u304c\u6574\u5408\u6027\u30c6\u30b9\u30c8\u306b\u5408\u683c\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306e\u95a2\u6570\u3092\u4f5c\u6210\u3057\u3001\u4e21\u65b9\u306e\u30b1\u30fc\u30b9\u306b\u906d\u9047\u3057\u307e\u3057\u305f\u3002\u4e00\u81f4\u3057\u306a\u3044\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u306f\u3001\u30ea\u30bd\u30fc\u30b9ID\u304c\u64cd\u4f5c\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u793a\u3057\u3066\u3044\u307e\u3059\u3002\u901a\u77e5\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u8981\u4ef6\u306b\u5fdc\u3058\u3066\u3001\u958b\u767a\u8005\u304c\u30e6\u30fc\u30b6\u30fc\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u30d6\u30ed\u30c3\u30af\u3057\u305f\u308a\u3001\u30ea\u30bd\u30fc\u30b9ID\u306b\u95a2\u9023\u3059\u308b\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u5831\u544a\u3057\u305f\u308a\u3059\u308b\u306a\u3069\u3001\u60aa\u610f\u306e\u3042\u308b\u884c\u52d5\u306b\u5bfe\u3057\u3066\u5bfe\u51e6\u3059\u308b\u305f\u3081\u306e\u3082\u306e\u3067\u3059\u3002<\/p>\n<p>\u3053\u306e\u6a5f\u80fd\u3092\u5143\u306e\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u306e\u7d50\u679c\u306b\u623b\u3059\u305f\u3081\u306b\u306f\u3001\u3053\u306e\u30b9\u30c6\u30c3\u30d7\u306e\u6700\u521d\u306b\u8ffd\u52a0\u3055\u308c\u305f\u8ffd\u52a0\u30b3\u30fc\u30c9\u3092\u524a\u9664\u3057\u3001\u30b9\u30c6\u30c3\u30d72\u306e\u6700\u5f8c\u306b\u3042\u308b\u30d5\u30a1\u30a4\u30eb\u3068\u30b3\u30fc\u30c9\u304c\u4e00\u81f4\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n<p>\u30e6\u30cb\u30fc\u30af\u306a\u30c7\u30fc\u30bf\u30e2\u30c7\u30eb\u3092\u751f\u6210\u3057\u3001API\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u306a\u3069\u3092\u30b5\u30dd\u30fc\u30c8\u3059\u308b\u305f\u3081\u306b\u3001\u30ab\u30b9\u30bf\u30e0\u306e\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u304c\u5fc5\u8981\u306a\u5834\u5408\u306f\u3001\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<h2>\u7d50\u8ad6<\/h2>\n<p>\u3053\u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u306f\u3001\u826f\u3044\u8b58\u5225\u5b50\u306e\u7279\u6027\u306b\u5408\u81f4\u3059\u308b\u30ea\u30bd\u30fc\u30b9ID\u3092\u958b\u767a\u3057\u307e\u3057\u305f\u3002\u307e\u305f\u3001Node.js\u74b0\u5883\u3067\u30d9\u30fc\u30b932\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3092\u4f7f\u7528\u3057\u3066\u4e00\u610f\u306e\u30ea\u30bd\u30fc\u30b9ID\u306b\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u4ed8\u3051\u307e\u3057\u305f\u3002\u6700\u5f8c\u306b\u3001\u30d9\u30fc\u30b932\u30c7\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3067ID\u306e\u6574\u5408\u6027\u3092\u691c\u8a3c\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\u6700\u7d42\u30d5\u30a1\u30a4\u30eb\u3068Silicon Cloud\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u30ea\u30dd\u30b8\u30c8\u30ea\u5185\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u5bfe\u6bd4\u3059\u308b\u3053\u3068\u3067\u3001\u4ea4\u4e92\u78ba\u8a8d\u304c\u3067\u304d\u307e\u3059\u3002\u307e\u305f\u3001git\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0\u306b\u6163\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u30ea\u30dd\u30b8\u30c8\u30ea\u3092git\u30af\u30ed\u30fc\u30f3\u3059\u308b\u3053\u3068\u3082\u53ef\u80fd\u3067\u3059\u3002GitHub\u304a\u3088\u3073\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u5165\u9580\u30b7\u30ea\u30fc\u30ba\u306b\u5f93\u3046\u3053\u3068\u3067\u3082\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u30af\u30ed\u30fc\u30f3\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u4eca\u3001\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u306e\u57fa\u672c\u3092\u7406\u89e3\u3057\u305f\u304b\u3089\u3001MD5\u306a\u3069\u306e\u4ed6\u306e\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3067\u5b9f\u9a13\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u8457\u8005\u306f\u3001\u300eWrite for Donations\u300f\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u4e00\u74b0\u3068\u3057\u3066\u5bc4\u4ed8\u3092\u53d7\u3051\u308b\u305f\u3081\u306b\u3001\u30d5\u30ea\u30fc\u3067\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306e\u57fa\u91d1\u3092\u9078\u629e\u3057\u307e\u3057\u305f\u3002 \u30a4\u30f3\u30c8\u30ed\u30c0\u30af\u30b7\u30e7\u30f3 \u30e6\u30cb\u30fc\u30af\u306a\u8b58\u5225\u5b50\uff08UID\uff09\u307e\u305f\u306f\u8b58\u5225\u5b50\u306f\u6587\u5b57\u5217\u5024\u307e\u305f\u306f\u6574\u6570\u3067\u3042 [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[26,61],"class_list":["post-171","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-26","tag-61"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u3092\u751f\u6210\u306e\u65b9\u6cd5 - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u3092\u751f\u6210\u306e\u65b9\u6cd5\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/ja\/blog\/\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u3092\u751f\u6210\u3059\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u3092\u751f\u6210\u306e\u65b9\u6cd5\" \/>\n<meta property=\"og:description\" content=\"\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u3092\u751f\u6210\u306e\u65b9\u6cd5\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/ja\/blog\/\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u3092\u751f\u6210\u3059\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-04T18:43:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-31T12:21:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/656460ebdaa94e2bdf7b2d7c\/73-0.png\" \/>\n<meta name=\"author\" content=\"\u967d, \u5411\u5b87\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u967d, \u5411\u5b87\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"35\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%82%b5%e3%83%a0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6%e3%83%aa%e3%82%bd%e3%83%bc%e3%82%b9%e8%ad%98%e5%88%a5%e5%ad%90%e3%82%92%e7%94%9f%e6%88%90%e3%81%99\/\",\"url\":\"https:\/\/www.silicloud.com\/ja\/blog\/%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%82%b5%e3%83%a0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6%e3%83%aa%e3%82%bd%e3%83%bc%e3%82%b9%e8%ad%98%e5%88%a5%e5%ad%90%e3%82%92%e7%94%9f%e6%88%90%e3%81%99\/\",\"name\":\"\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u3092\u751f\u6210\u306e\u65b9\u6cd5 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#website\"},\"datePublished\":\"2023-02-04T18:43:54+00:00\",\"dateModified\":\"2025-07-31T12:21:25+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/4aef6196128551a0f5d66db46c42866c\"},\"description\":\"\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u3092\u751f\u6210\u306e\u65b9\u6cd5\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%82%b5%e3%83%a0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6%e3%83%aa%e3%82%bd%e3%83%bc%e3%82%b9%e8%ad%98%e5%88%a5%e5%ad%90%e3%82%92%e7%94%9f%e6%88%90%e3%81%99\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/ja\/blog\/%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%82%b5%e3%83%a0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6%e3%83%aa%e3%82%bd%e3%83%bc%e3%82%b9%e8%ad%98%e5%88%a5%e5%ad%90%e3%82%92%e7%94%9f%e6%88%90%e3%81%99\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%82%b5%e3%83%a0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6%e3%83%aa%e3%82%bd%e3%83%bc%e3%82%b9%e8%ad%98%e5%88%a5%e5%ad%90%e3%82%92%e7%94%9f%e6%88%90%e3%81%99\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/ja\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u3092\u751f\u6210\u306e\u65b9\u6cd5\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/ja\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/4aef6196128551a0f5d66db46c42866c\",\"name\":\"\u967d, \u5411\u5b87\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ad96b120e219751fa368cbd7d2c48ca01b59185e6ed394449bac72614a760bf3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ad96b120e219751fa368cbd7d2c48ca01b59185e6ed394449bac72614a760bf3?s=96&d=mm&r=g\",\"caption\":\"\u967d, \u5411\u5b87\"},\"url\":\"https:\/\/www.silicloud.com\/ja\/blog\/author\/hinatasora\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.silicloud.com\/ja\/blog\/%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%82%b5%e3%83%a0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6%e3%83%aa%e3%82%bd%e3%83%bc%e3%82%b9%e8%ad%98%e5%88%a5%e5%ad%90%e3%82%92%e7%94%9f%e6%88%90%e3%81%99\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u3092\u751f\u6210\u306e\u65b9\u6cd5 - Blog - Silicon Cloud","description":"\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u3092\u751f\u6210\u306e\u65b9\u6cd5\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/ja\/blog\/\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u3092\u751f\u6210\u3059\/","og_locale":"ja_JP","og_type":"article","og_title":"\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u3092\u751f\u6210\u306e\u65b9\u6cd5","og_description":"\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u3092\u751f\u6210\u306e\u65b9\u6cd5\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002","og_url":"https:\/\/www.silicloud.com\/ja\/blog\/\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u3092\u751f\u6210\u3059\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-02-04T18:43:54+00:00","article_modified_time":"2025-07-31T12:21:25+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/656460ebdaa94e2bdf7b2d7c\/73-0.png"}],"author":"\u967d, \u5411\u5b87","twitter_card":"summary_large_image","twitter_misc":{"\u57f7\u7b46\u8005":"\u967d, \u5411\u5b87","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"35\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/ja\/blog\/%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%82%b5%e3%83%a0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6%e3%83%aa%e3%82%bd%e3%83%bc%e3%82%b9%e8%ad%98%e5%88%a5%e5%ad%90%e3%82%92%e7%94%9f%e6%88%90%e3%81%99\/","url":"https:\/\/www.silicloud.com\/ja\/blog\/%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%82%b5%e3%83%a0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6%e3%83%aa%e3%82%bd%e3%83%bc%e3%82%b9%e8%ad%98%e5%88%a5%e5%ad%90%e3%82%92%e7%94%9f%e6%88%90%e3%81%99\/","name":"\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u3092\u751f\u6210\u306e\u65b9\u6cd5 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/ja\/blog\/#website"},"datePublished":"2023-02-04T18:43:54+00:00","dateModified":"2025-07-31T12:21:25+00:00","author":{"@id":"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/4aef6196128551a0f5d66db46c42866c"},"description":"\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u3092\u751f\u6210\u306e\u65b9\u6cd5\u3092\u5206\u304b\u308a\u3084\u3059\u304f\u89e3\u8aac\u3002\u5b9f\u8df5\u7684\u306a\u4f8b\u3068\u30b3\u30fc\u30c9\u3001\u6ce8\u610f\u70b9\u3092\u542b\u3081\u3066\u521d\u5fc3\u8005\u306b\u3082\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u8aac\u660e\u3057\u307e\u3059\u3002","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/ja\/blog\/%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%82%b5%e3%83%a0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6%e3%83%aa%e3%82%bd%e3%83%bc%e3%82%b9%e8%ad%98%e5%88%a5%e5%ad%90%e3%82%92%e7%94%9f%e6%88%90%e3%81%99\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/ja\/blog\/%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%82%b5%e3%83%a0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6%e3%83%aa%e3%82%bd%e3%83%bc%e3%82%b9%e8%ad%98%e5%88%a5%e5%ad%90%e3%82%92%e7%94%9f%e6%88%90%e3%81%99\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/ja\/blog\/%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%82%b5%e3%83%a0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6%e3%83%aa%e3%82%bd%e3%83%bc%e3%82%b9%e8%ad%98%e5%88%a5%e5%ad%90%e3%82%92%e7%94%9f%e6%88%90%e3%81%99\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/ja\/blog\/"},{"@type":"ListItem","position":2,"name":"\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u8b58\u5225\u5b50\u3092\u751f\u6210\u306e\u65b9\u6cd5"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/ja\/blog\/#website","url":"https:\/\/www.silicloud.com\/ja\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/4aef6196128551a0f5d66db46c42866c","name":"\u967d, \u5411\u5b87","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.silicloud.com\/ja\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ad96b120e219751fa368cbd7d2c48ca01b59185e6ed394449bac72614a760bf3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ad96b120e219751fa368cbd7d2c48ca01b59185e6ed394449bac72614a760bf3?s=96&d=mm&r=g","caption":"\u967d, \u5411\u5b87"},"url":"https:\/\/www.silicloud.com\/ja\/blog\/author\/hinatasora\/"},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.silicloud.com\/ja\/blog\/%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%82%b5%e3%83%a0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6%e3%83%aa%e3%82%bd%e3%83%bc%e3%82%b9%e8%ad%98%e5%88%a5%e5%ad%90%e3%82%92%e7%94%9f%e6%88%90%e3%81%99\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts\/171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/comments?post=171"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts\/171\/revisions"}],"predecessor-version":[{"id":325728,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/posts\/171\/revisions\/325728"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/media?parent=171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/categories?post=171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/ja\/blog\/wp-json\/wp\/v2\/tags?post=171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}