• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:10000通りのシリアル番号を生成したい)

10000通りのシリアル番号を生成する方法

このQ&Aのポイント
  • 10000通りのユニークなシリアル番号を生成させるプログラムを作りたい。
  • シリアル番号にはマスク処理をかけて他の番号にHitしないようにする。
  • シリアル番号から元の連番の数値も出力する方法を知りたい。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

可逆なENCODE/DECODEが出来れば良いのであるから、 ロジックがバレなきゃ何でも良いんじゃないですか? 例えば 数字列(abcd)という4桁の数字に対し、 a + 1 = A b + 3 = B c + 5 = C d + 7 = D を、それぞれ行い、10以上なら、一の位のみ残す。 そして、数字列(ABCD)にチェックデジット(x)を求め付与する。 出来がった数字列(xABCD)に、もう一度チェックデジット(y)を付与する。 xABCDy となる。 シリアルコードが正当なモノかどうかは、デジット計算で行える。 もとの連番値が知りたいときは、デジット桁を捨てて、 10 + A - 1 = a 10 + B - 3 = b 10 + C - 5 = c 10 + D - 7 = d それぞれのabcdが、10以上なら、一の位だけを使って 数字列(abcd)とする。 プログラミングは難しくないけれど、ロジックさえバレなきゃ、 想像が付きにくいシリアルコードが作れるハズ。 例) 0000 -> 913570 0001 -> 713588 ポイントは、ロジックが推定しにくくなるように、ということだけです。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.1

> その、マスクの部分の具体的な処理がよくわからないのです。 単純に乱数ではだめですか? (重複がでたら再度乱数をかければ) > シリアル番号から、元の連番の数値も出したいと考えていますが 番号とシリアルを対応させたリストを別に作っておくことになるでしょう。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 請求書等のシリアル番号生成方法?

    請求書(E-mai本文用)等に使用するシリアル番号の生成の仕方を知りたいのですが、どうすればよいのでしょうか? 「マクロ秒とかを使用するのかな?」とも思いますが。 できれば、きっかけとなる関数や知識などをお教え下さい。 簡単なコードなどでも結構です。 シリアル番号を連番で出す場合とランダム出す場合では、方法が違うように思いますが。一様、両方の方法を試してみたいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 連続したシリアルを自動生成する方法

    連続したシリアルを自動生成する方法 VBA入門したばかりの初心者です。 業務で使用するのですが、お力を貸していただければ助かります。   A     B 1 コード   1111 2 数量     40 3 シリアル  25250 毎回するのはB1:B3です。 シリアルは先頭のシリアル番号であり、数量分連番で作成しなければなりません。 最終的にはコードをタイトルとしたテキストファイルに 数量分のシリアルを出力したいのです。 ですが、初歩的な部分でシリアルの生成ができません。 一度"SHEET2"などにシリアルを生成するか、"SHEET1"の空きスペースに作成しても 構いません。(まだ構造がはっきりできていないのでモヤモヤしています) 使用環境: winXP SP2 Excel2000(9.0) 不足情報があればご指摘くださいますよう、お願いいたします。

  • 再インストール時のシリアル番号について

    パソコンの再セットアップに伴いウイルスセキュリティの再インストールを行ったところ、シリアル番号入力画面が、○○○○(英字)-××××-××××-××××-××××(数字)となっているのですが、初期登録は××××××(6桁)ー××××××××××(10桁)しかわかりません。どうすればよいか教えていただきたいのですが・・・?

  • シリアル番号が分かりません。

    シリアル番号が分かりません。 購入後ソースネクストから、16桁の数字は送られてきたのですが、 入力画面はあたまに英字を入力するようで、英字はメールにありません。 どうしたらよいですか? ※OKWAVEより補足:「ソースネクスト株式会社の製品・サービス」についての質問です。

  • Accessで指示書番号の自動採番

    入力フォームで指示書番号が自動採番され、テーブルにも保存されるようにするための方法を教えていただけないでしょうか。 テーブル:T_指示書 フィールド:指示書番号 フィールドはテキスト型で、番号の構成は8桁の番号で "年(二桁)" + "月(二桁)" +"部署番号(一桁、固定の数字)"+ "連番(三桁)" (例:09091001) という感じで、 年月が変われば、連番が001になるようにしたいです。 どなたか、ご教授いただければありがたいです。 よろしくおねがいします。 Access2002 winXP

  • 会員番号等に利用するダブらない連続番号(シリアル)の作り方を教えてください。

    PHP+MySQL勉強中のものですがよい方法を教えてください。 表題のように会員登録のサイトを作っているのですが いわゆる会員番号をダブらないようにして入力時に自動的に作成したいのですが 一般的にはどのような方法があるのでしょうか? 私としてはDBの会員登録とは別にシリアル番号だけを書き換えていくテーブルを作って新規入力時に値を拾っていく方式にしたいのですが。 会員テーブル(会員番号,会員名) シリアルテーブル(シリアル番号) に対して 会員テーブルに会員名を入力  ↓ シリアルテーブルからシリアル番号を読込む  ↓ 会員テーブルに(シリアル番号+1&5桁の数字,会員名)を登録 (5桁の数字は他で使うものでユニークな値ではないです)  ↓ シリアルテーブルに(シリアル番号+1)として更新  ↓ シリアルテーブルのシリアル番号が9999になったら1に戻す という処理をしたいのですが 処理自体はできるのですが 当然PHPのコードが素人目にみても余りきれいではありません。 一般論でかまいませんので皆さんならどうされるか等 ご意見をうかがえないでしょうか? よろしくお願いします。 環境はPHP5+MySQL5です。

    • ベストアンサー
    • PHP
  • シリアル番号検索を早くする方法

    office2016 (1)ORACLEからシリアル番号とその工事名称をexcelへインポート (2)シリアル番号に対する工事名称を確認して、作業工程のデータを作成 (3)作成した作業工程のデータをORACLEへ登録 というデータ作成をしています。 もともとは、(1)、(2)は無しで対応していたのですが、シリアル番号を手入力すると間違えるので、(1)、(2)の内容を追加しました。 登録されているシリアルの数が多い(4万件ほど)ので、先頭1桁目の文字列、先頭2桁目の文字列抽出、先頭3桁目の文字列抽出、先頭4桁目の文字列抽出をし、 あとは、先頭4桁で絞ったシリアル番号の集まりにして、その中からプルダウンメニューで対象のシリアル番号を特定させるという構成にしています。 シリアル番号の桁数は8桁。先頭4桁は英数文字、後半4桁はほぼ数字。若干英文字混じる。 MENUシート 工事番号の絞り込みとその工事番号の名称表示を実施 A13セル:シリアル番号1桁目を表示。入力規則 =SERIAL!$H:$H B13セル:シリアル番号2桁目を表示。入力規則 =SERIAL!$iI$I C13セル:シリアル番号3桁目を表示。入力規則 =SERIAL!$J:$J D13セル:シリアル番号4桁目を表示。入力規則 =SERIAL!$K:$K E13セル:8桁のシリアル番号表示。入力規則 =KOJI!$A:$A SERIALシート ORACLからインポートしたデータ表示 A列:シリアル番号 B列:工事名称 C列:シリアル番号の1桁目表示 D列:シリアル番号の2桁目表示 E列:シリアル番号の3桁目表示 F列:シリアル番号の4桁目表示 G2セル:MENUシートで先頭4桁の番号表示 =MENU!A13&MENU!B13&MENU!C13&MENU!D13 H列:インポートしたシリアル番号の先頭1桁目に使用されている文字列表示 I列:インポートしたシリアル番号の先頭2桁目に使用されている文字列表示 J列:インポートしたシリアル番号の先頭3桁目に使用されている文字列表示 K列:インポートしたシリアル番号の先頭4桁目に使用されている文字列表示 KOJIシート 先頭4桁で絞り込んだシリアル番号の集まりを表示する マクロ MENUシート Private Sub Worksheet_Change(ByVal Target As Range) If (Target.Column = 1 Or Target.Column = 2 Or Target.Column = 3 Or Target.Column = 4) And Target.Row = 13 Then chushutsu Else End If 標準モジュール Sub chushutsu() Application.ScreenUpdating = False Sheets("KOJI").Select Columns("A:B").Select Selection.ClearContents Sheets("SERIAL").Select Range("G1") = "SERIAL" Range("G2") = "=MENU!R[11]C[-6]&MENU!R[11]C[-5]&MENU!R[11]C[-4]&MENU!R[11]C[-3]" ' Columns("A:B").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _ Range("G1:G2"), Unique:=False ' Cells.Select Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Sheets("KOJI").Select Range("A1").Select ActiveSheet.Paste ActiveWorkbook.Worksheets("KOJI").Sort.SortFields.Clear ActiveWorkbook.Worksheets("KOJI").Sort.SortFields.Add Key:=Range("A:A"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("KOJI").Sort .SetRange Range("A:B") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Sheets("SERIAL").Select ActiveSheet.ShowAllData Sheets("MENU").Select Application.ScreenUpdating = True End Sub 問題なのは、MENUシートのA13,B13,C13,D13セルでプルダウンメニューから文字を選択する度にマクロが動作するのに、若干時間がかかること。 シリアル番号を検索するのに、基本、先頭1桁目から順番に絞り込みます。 なので計算方法を手動にしておき、先頭1桁目から3桁目まではマクロ動作させず、4桁目を指定した後にマクロ実行するという手もありますが、後から2桁目の文字だけ変更して別のシリアル番号検索という場合もあるので対応できません。 CTRL+Fで工事番号を手入力して検索したらすぐに探せますが、手入力は面倒なので、先頭4桁の文字をプルダウンで特定して絞り込むという構成のままで検索時間の短縮が図れる構成としたいです。 マクロに関してはベタで教えていただきたく。

  • デジタル印鑑シリアルナンバー

    パソコンを買い替えたので、新しいパソコンにデジタル印鑑をインストールしました。 立ち上げたときにシリアル番号入力画面になりましたが、指定されているのは数字3桁-7桁です。 自分のシリアル番号を確認すると、アルファベットと数字の長いシリアル番号で、入力できません。 どうしたらよいのでしょうか。 ※OKWAVEより補足:「ソースネクスト株式会社の製品・サービス」についての質問です。

  • B’s Recorder GOLDインストール時のシリアル番号の入力について

    BHAのB’s Recorder GOLDをインストールしたいのですがシリアル番号が上手く入力できません。 マニュアルを見たところ16桁(4桁ずつ4カラム)の番号が入るようなのですが、 シリアル番号は CDR/RW-ABシリーズ V1.03      S/N WRS*******C* と記載されており(*は数字です)16桁には足りません。 購入時(今から5、6年前)はきちんとインストールして 使っていたのでシリアル番号に間違いはないと思うのですが・・・。 古い製品で申し訳ないのですが、もしお分かりの方がいらしたらお願いします。 なお、OSはWin98でこちらも古いです。 以上、よろしくお願いします。

  • ギターのシリアルナンバー

    中古で購入したエレキギターのヘッド部分にシリアルナンバーが書かれているのですが、この番号からギターの製造年などを調べることは可能なのでしょうか? 尚、ギターはEpiphone SGで、シリアルナンバーはアルファベットのIから始まり、後ろは0から始まる数字8桁になっています。