XOR Crypt Haskell

时间:2016-04-06 07:19:35

标签: haskell

我正在尝试使用Data.Bits中的XOR作为参数加密一个String,我试图学习如何在Haskell中创建它。

请注意我是这种编程语言的新手,我想自己学习如何做到这一点。如果可能的话,我想得到一些关于如何做的提示

我到目前为止所做的事情:

encrypt string = map xor $ split "" string

但我真的不知道如何使用Key来加密它,我应该在哪里添加它?也许重复一下地图" Key"次?

功能签名是 字符串 - > [Word8] - > [Word8] 而我正在尝试创建无点(仅使用字符串参数)

1 个答案:

答案 0 :(得分:1)

从您的评论来看,您希望以无点的方式实现这一点:

function slideshow(n) {
var imgEs = document.getElementById('slideshow').getElementsByTagName('img');
var i = 0, l = imgEs.length;
i += n;
if(i >= l) i = 0;
if(i < 0) i = l - 1;
switch(i) {
    case 0:
        imgEs[0].style.display = 'block';
        imgEs[1].style.display = 'none';
        imgEs[2].style.display = 'none';
        break
    case 1:
        imgEs[0].style.display = 'none';
        imgEs[1].style.display = 'block';
        imgEs[2].style.display = 'none';
        break
    case 2:
        imgEs[0].style.display = 'none';
        imgEs[1].style.display = 'none';
        imgEs[2].style.display = 'block';
        break
    default:
        imgEs[0].style.display = 'block';
        imgEs[1].style.display = 'none';
        imgEs[2].style.display = 'none';
    }
}
slideshow(0);

有一个名为&#34; pointfree&#34;的工具它可以自动将表达式转换为无点样式。

评论:

  • 不要过度做无点风格。除了非常短的片段之外的任何内容都可能很容易变得难以理解。这是因为无点样式可以模糊表达式的结构,并且它会删除有用的变量名称。
  • 如果只是模糊处理,请不要将您的功能加密调用。