0

我正在 Arduino 中实现 Vigenère 密码;我想先在 C 中构建函数,只是为了掌握事情的窍门。

我的密钥字符串将存储在 arduino 中,它们将被随机选择以加密用户输入的消息。但是,密钥的长度是固定的,并且消息的长度可能比密钥长。

是否可以在字符串中重复字符直到字符串达到一定长度?

例如,如果存储的密钥是​​“axudni”,消息是“rideatdawn”,有没有办法更改密钥字符串,使其变为“axudniaxud”?

类似的东西:https ://stackoverflow.com/a/14992905/14103580

我只需要以正确的方式指出,我们将不胜感激。

4

1 回答 1

4

我认为这是一个 X/Y 问题(https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。

我怀疑创建一个合适的重复密钥字符串是一种可能但不优雅的解决方案。

相反,我建议通过您将用于重复字符串的索引的模来访问它们来使用这些键。

我在此承认这个概念已经在 Weather Vane 的明显较旧的评论中。在添加我的答案之前我根本没有注意到。

即,而不是像这样的repeatedkeystring[i]访问方式阅读keystring[i%keylength]

注意:
我相信/假设“我正在制作一个 vignere 密码实现”意味着您自己可以决定访问密钥的这种细节。如果您使用的库需要一个指向内存中足够长的字符序列的指针(const char* const可能是指向 char 的指针),那么您肯定需要遵循乘法方法)。

于 2021-01-14T13:21:03.463 回答