昨天我读了一个问题,链接为Algorithm to create costum Template/Code from String。由于问题表述不清晰,它很快就被downvote了。然而,在我看来这个问题本身并不那么糟糕,所以我决定重新提出一个更好的问题。
我想知道像新版Spotify代码这样的字符串加密是如何工作的,如下图所示:
引用:
假设有一排被分成了24个条形,所有条形的大小可以是'3','5','7'或'9'。
什么是将字符串(假设为5个字符)转换为唯一模式的好方法/简单方法,之后也可以将其转换回字符串?
这是我迄今为止开发的代码,但在这段代码中,我使用了一个包含10种不同可能性(-->条形码大小)的键数组,但我只想使用4种不同大小。
说明:
我将字符串“hello”转换为二进制格式,并将字符串拆分成最多3个组,以获得以下结果:['001','110','0']。
然后,我使用上面的结果数组,在下面的密钥数组中查找匹配项并获取索引(10个不同的索引--> 10个不同的可能性),并将它们用作条形码大小。
但是,肯定有更有效的方法将字符串转换为唯一模式。我希望有人能帮助我改进我的小算法。非常感谢您的帮助。
我想知道像新版Spotify代码这样的字符串加密是如何工作的,如下图所示:
![Spotify Codes](https://istack.dev59.com/ltR8M.webp)
我非常想知道在Javascript中是否可能实现类似这种模式加密。
Spotify代码(如上文所述)结构化成一排,由不同大小的条形组成。假设有一排被分成了24个条形,所有条形的大小可以是'3','5','7'或'9'。
string = 'hello' --> pattern = '3,3,5,7,9,3,7,9,9,3,3,5,3,9,5,3,3,7,5,9,3,9,3,9'
什么是将字符串(假设为5个字符)转换为唯一模式的好方法/简单方法,之后也可以将其转换回字符串?
这是我迄今为止开发的代码,但在这段代码中,我使用了一个包含10种不同可能性(-->条形码大小)的键数组,但我只想使用4种不同大小。
说明:
我将字符串“hello”转换为二进制格式,并将字符串拆分成最多3个组,以获得以下结果:['001','110','0']。
然后,我使用上面的结果数组,在下面的密钥数组中查找匹配项并获取索引(10个不同的索引--> 10个不同的可能性),并将它们用作条形码大小。
但是,肯定有更有效的方法将字符串转换为唯一模式。我希望有人能帮助我改进我的小算法。非常感谢您的帮助。
var key = ['0', '1', '000','001','010','100','110','101','011','111']
String.prototype.encode = function() {
var code = this, result = [],encryped_string=[]
for (var i=0; i<code.length;i++) result.push(code[i].charCodeAt(0).toString(2).match(/.{1,3}/g));
for (var i=0; i<result.length; i++) for (var j=0; j<result[i].length; j++) encryped_string.push(key.indexOf(result[i][j]))
return encryped_string
}
var code = 'hello';
console.log(code.encode())