# Enigma
密码机组件,所有的加解密操作均通过该组件访问
# constructor
- 参数:
{Settings} settings
- 说明:
- 可选接受一个配置对象,用于初始化密码机的配置值,缺失的配置字段将会被默认配置替代。
# 成员属性
# wheels
- 类型:
{Array<Wheel>}
- 说明:
- 只读属性,获取当前实例所有生效的转子对象。
# reflector
- 类型:
{Reflector}
- 说明:
- 只读属性,获取当前实例生效的反射器对象。
# inputMapper
- 类型:
{Array<string>}
- 说明:
- 只读属性,获取当前实例生效的输入映射。
# wheelsSetting
- 类型:
{Array<Array<number>>}
- 说明:
- 只读属性,当前实例所有的转子配置。
# reflectorSetting
- 类型:
{Array<{value1:number,value2:number}>}
- 说明:
- 只读属性,当前实例反射器的配置。
# 方法
# setReflectorSetting
- 参数
{Array<{value1:number,value2:number}>} setting
反射器配置
- 说明:
- 设置新的反射器配置。
- 返回值:
{Enigma}
当前实例
# setWheelsSetting
- 参数
{Array<Array<number>>} setting
转子组配置
- 说明:
- 设置新的转子配置。注意,这将重置所有的转子位置到0,你可能需要重新设置每个转子的位置。当传入多个转子时,数组的第一个元素为最左侧的转子,最后一个元素为最右侧转子。
- 返回值:
{Enigma}
当前实例
# setInputMapper
- 参数
{Array<string>} setting
输入映射配置- 说明:
- 设置新的设置输入映射,字符所对应的索引将会是映射后的数值。
- 返回值:
{Enigma}
当前实例
# setWheelsPosition
- 参数
{Array<number>} setting
转子组初始位置
- 说明:
- 为所有转子设置位置,建议在初始化转子后配置。
- 返回值:
{Enigma}
当前实例
# setWordMapperSetting
- 参数
{Array<{value1: string, value2: string}>} setting
字符映射配置
- 说明:
- 设置字符映射,设置新的字符映射会使原有的映射失效,即使与原有映射不冲突。
- 返回值:
{Enigma}
当前实例
# input
- 参数
{string} value
输入值 - 说明:
- 输入方法,输入原始信息进行加密或输入密文进行解密,每解析一个字符就回时转子的位置发生变化(类似于计数器的变化方式,从右至左一次递增),所以加解密同一条信息时需要使用设置转子到相同的起始位置。
- 返回值:
{string}
加/解密后的结果
- 示例:
const instance = new Enigma();
instance.setWheelsPosition([0, 25, 20]);
const encode = instance.input('HEllO WORlD!!!');
// encode: TCMCT IHCKX!!!
instance.setWheelsPosition([0, 25, 20]);
const decode = instance.input(encode)
// decode: HEllO WORlD!!!
# addEventListener
- 参数
{String} eventType
事件类型{(value:unknown)=>void} callback
事件回调
- 说明:
- 注册事件监听。
- 返回值:
{number}
事件的注册ID
- 示例:
const instance = new Enigma();
instance.addEventListener('input',(value:string)=>{
console.log(value);
});
# removeEventListener
- 参数
{String} eventType
事件类型{number} eventId
事件注册ID
- 说明:
- 移除事件监听。
- 示例:
const instance = new Enigma();
const eventId = instance.addEventListener('input',(value:string)=>{
console.log(value);
});
instance.removeEventListener('input',eventId);
# 事件
# input
- 说明:
- 输入事件。
- 参数
{String} value
经过加/解密后的值
# wheelPositionChange
- 说明:
- 转子位置改变事件。
- 参数
{Array<number>} positions
改变后的转子位置
# wheelSettingChange
- 说明:
- 转子配置改变事件。
- 参数
{Array<Array<number>>} settings
改变后的转子配置
# reflectorSettingChange
- 说明:
- 反射器配置改变事件。
- 参数
{Array<{value1:number,value2:number}>} settings
改变后的反射器配置
# inputMapperChange
- 说明:
- 输入映射配置改变事件。
- 参数
{Array<string>} inputMapper
改变后的输入映射配置
# wordMapsChange
- 说明:
- 字符映射配置改变事件。
- 参数
{Array<{value1:string,value2:string}>} wordMaps
改变后的字符映射配置
← Settings WordMapper →