必须用密文的前两个字母做密钥加密

必须用密文的前两个字母做密钥加密

这是什么意思啊?(必须用密文的前两个字母做密钥加密)大家给我解释一下密膺是什么意思及怎样进行加密及解密      
能具体点吗?最好能将原文付上。      
1、#!/usr/bin/perl -w
2、use CGI qw(:all);
3、use strict;
4、my $name;
5、my $passwd;
6、my $cryptpasswd;
7、my $name=param('name');
8、my $passwd=param('passwd');
9、chomp $name;
10、chomp $passwd;
11、if (my $name eq "") { print "请输入用户名!\n"; exit;}
12、if (my $passwd eq "") { print "请输入密码!\n"; exit;}
13、my $cryptpasswd=crypt($passwd,"ss");
14、open (PASSWD,"/var/www/cgi-bin/shadow")||die "你不能打开文件\n";
15、$shadow=<ASSWD>;
16、close(PASSWD);
17、@shadow=split(/:/,$shadow);
18、print "$name\n";
19、print "$cryptpasswd\n";
20、print "$shadow[0]\n";
21、print "$shadow[1]\n";
22、if ((my $name eq $user) && (my $cryptpasswd eq $passwdshadow)) { print "感、谢你的登录!\n"; exit;}
23、else { print "输入错误了!\n"; exit;}
在这个程序中if语句不能执行,my $cryptpasswd eq $passwdshadow比较时总是不相等,而在19与21行的输出中是相等的不知是为什么?我在书上看到了要用密膺来加密所以问一下它们两个不等是不是由于密膺问题。      
快来帮忙啊,我快急死了       
我想问你的名字和密码是数字串还是字符串? 为什么用eq而不是==?      
是字符串比蒉你?便?我看一下上面那?程序吧著著。      
你先说说你的程序所完成的功能!