Algorithm 需要源代码中的TAN生成器(Java、Javascript、PHP、Coldfusion、Delphi)

Algorithm 需要源代码中的TAN生成器(Java、Javascript、PHP、Coldfusion、Delphi),algorithm,random,generator,seed,Algorithm,Random,Generator,Seed,我要找的人谁使用他/她的高等数学专业知识,创建一个算法,以提供伪随机TAN码。该算法从一个种子开始,能够生成任意第n个代码。重复检索同一位置的代码会返回相同的值。在不同位置重复相同的值:不在10^12或更高的值之前 它能够根据上一个代码或作为输入提供的位置/索引生成下一个代码。代码本身是由一组字符组成的字符串 该算法能够检查给定代码是否是seed创建的序列的有效代码 该算法能够保存和恢复其状态(可序列化)。它不预先计算键列表。重复代码是可以的 一些术语: 位置:表示序列中第n个代码所需的任何内

我要找的人谁使用他/她的高等数学专业知识,创建一个算法,以提供伪随机TAN码。该算法从一个种子开始,能够生成任意第n个代码。重复检索同一位置的代码会返回相同的值。在不同位置重复相同的值:不在10^12或更高的值之前

它能够根据上一个代码或作为输入提供的位置/索引生成下一个代码。代码本身是由一组字符组成的字符串

该算法能够检查给定代码是否是seed创建的序列的有效代码

该算法能够保存和恢复其状态(可序列化)。它不预先计算键列表。重复代码是可以的

一些术语:

  • 位置:表示序列中第n个代码所需的任何内容。整数,结构,任何需要的
  • 字母表,一个或多个字母的集合:
  • 下:所有小写字符a-z
  • 大写,所有大写字符A-Z
  • 数字,0-9
  • 特殊、非阿法努姆字符
  • 安全,消除像ilIO0S5这样的危险字符
我可以在伪代码中想象这样的情况:

TANgen班

构造函数(种子、字母表、代码长度) //这将初始化算法,使其能够启动。它应该假设我们将一个接一个地检索代码,因此类会记住已经生成了多少代码

string function get ()
string function get (position)
// get the next code or the code at position.

string function get_next (position)
string function get_next (code)
// both functions get the next code, following the one given either by a position or a code

string[] function get (position, count)
string[] function get (code, count)
// get count codes starting with the one given by either a position or a code

position function validate (code)
// checks the code and returns its position or null if not valid

boolean function validate (code, position)
// wrapper for validate() != null

position function validate (code, position, windowsize)
// returns the position of a code if found at position, where position is the middle position of a sliding window. So like code in (code[position-windowsize],…,code[position-1],code[position],code[position+1],…,code[position+windowsize])


function save()

function load()
也许有人已经这样做了,或者知道我可以从哪里开始

非常感谢您提供的任何帮助或指向源代码的指针

多谢各位