亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? unit1.pas

?? DES算法完整源碼與調用方法 DES算法完整源碼與調用方法
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
///////////////////////////////////////////////////////////////////////////////
                         //Des DEMO V1.0//
                          //作者:ksaiy//
//歡迎使用由ksaiy制作的DES加密算法演示程序,此算法為標準的DES算法,你可以根據的
//的自己需要進行變形。具體怎么操作可以登錄我們的網站查詢詳細的資料。我們專門為軟
//件開發者提供軟件加密安全測試服務和軟件加密解決方案,具體的可以參看我們的網站上
//的資料。我們的網站:http://www.ksaiy.com  http://www.magicoa.com
//技術支持:ksaiy@sina.com 在線QQ:40188696 UC:934155
                            //End //

                  //注意:轉載請保留以上信息。//                            
///////////////////////////////////////////////////////////////////////////////
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Button2: TButton;
    Label3: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

type
  TKeyByte = array[0..5] of Byte;
  TDesMode = (dmEncry, dmDecry);

  function EncryStr(Str, Key: String): String;
  function DecryStr(Str, Key: String): String;
  function EncryStrHex(Str, Key: String): String;
  function DecryStrHex(StrHex, Key: String): String;
  
const
  BitIP: array[0..63] of Byte =   //初始值置IP
    (57, 49, 41, 33, 25, 17,  9,  1,
     59, 51, 43, 35, 27, 19, 11,  3,
     61, 53, 45, 37, 29, 21, 13,  5,
     63, 55, 47, 39, 31, 23, 15,  7,
     56, 48, 40, 32, 24, 16,  8,  0,
     58, 50, 42, 34, 26, 18, 10,  2,
     60, 52, 44, 36, 28, 20, 12,  4,
     62, 54, 46, 38, 30, 22, 14,  6 );

  BitCP: array[0..63] of Byte = //逆初始置IP-1
    ( 39,  7, 47, 15, 55, 23, 63, 31,
      38,  6, 46, 14, 54, 22, 62, 30,
      37,  5, 45, 13, 53, 21, 61, 29,
      36,  4, 44, 12, 52, 20, 60, 28,
      35,  3, 43, 11, 51, 19, 59, 27,
      34,  2, 42, 10, 50, 18, 58, 26,
      33,  1, 41,  9, 49, 17, 57, 25,
      32,  0, 40,  8, 48, 16, 56, 24 );

  BitExp: array[0..47] of Integer = // 位選擇函數E
    ( 31, 0, 1, 2, 3, 4, 3, 4, 5, 6, 7, 8, 7, 8, 9,10,
      11,12,11,12,13,14,15,16,15,16,17,18,19,20,19,20,
      21,22,23,24,23,24,25,26,27,28,27,28,29,30,31,0  );

  BitPM: array[0..31] of Byte =  //置換函數P
    ( 15, 6,19,20,28,11,27,16, 0,14,22,25, 4,17,30, 9,
       1, 7,23,13,31,26, 2, 8,18,12,29, 5,21,10, 3,24 );

  sBox: array[0..7] of array[0..63] of Byte =    //S盒
    ( ( 14,  4, 13,  1,  2, 15, 11,  8,  3, 10,  6, 12,  5,  9,  0,  7,
         0, 15,  7,  4, 14,  2, 13,  1, 10,  6, 12, 11,  9,  5,  3,  8,
         4,  1, 14,  8, 13,  6,  2, 11, 15, 12,  9,  7,  3, 10,  5,  0,
        15, 12,  8,  2,  4,  9,  1,  7,  5, 11,  3, 14, 10,  0,  6, 13 ),

      ( 15,  1,  8, 14,  6, 11,  3,  4,  9,  7,  2, 13, 12,  0,  5, 10,
         3, 13,  4,  7, 15,  2,  8, 14, 12,  0,  1, 10,  6,  9, 11,  5,
         0, 14,  7, 11, 10,  4, 13,  1,  5,  8, 12,  6,  9,  3,  2, 15,
        13,  8, 10,  1,  3, 15,  4,  2, 11,  6,  7, 12,  0,  5, 14,  9 ),

      ( 10,  0,  9, 14,  6,  3, 15,  5,  1, 13, 12,  7, 11,  4,  2,  8,
        13,  7,  0,  9,  3,  4,  6, 10,  2,  8,  5, 14, 12, 11, 15,  1,
        13,  6,  4,  9,  8, 15,  3,  0, 11,  1,  2, 12,  5, 10, 14,  7,
         1, 10, 13,  0,  6,  9,  8,  7,  4, 15, 14,  3, 11,  5,  2, 12 ),

      (  7, 13, 14,  3,  0,  6,  9, 10,  1,  2,  8,  5, 11, 12,  4, 15,
        13,  8, 11,  5,  6, 15,  0,  3,  4,  7,  2, 12,  1, 10, 14,  9,
        10,  6,  9,  0, 12, 11,  7, 13, 15,  1,  3, 14,  5,  2,  8,  4,
         3, 15,  0,  6, 10,  1, 13,  8,  9,  4,  5, 11, 12,  7,  2, 14 ),

      (  2, 12,  4,  1,  7, 10, 11,  6,  8,  5,  3, 15, 13,  0, 14,  9,
        14, 11,  2, 12,  4,  7, 13,  1,  5,  0, 15, 10,  3,  9,  8,  6,
         4,  2,  1, 11, 10, 13,  7,  8, 15,  9, 12,  5,  6,  3,  0, 14,
        11,  8, 12,  7,  1, 14,  2, 13,  6, 15,  0,  9, 10,  4,  5,  3 ),

      ( 12,  1, 10, 15,  9,  2,  6,  8,  0, 13,  3,  4, 14,  7,  5, 11,
        10, 15,  4,  2,  7, 12,  9,  5,  6,  1, 13, 14,  0, 11,  3,  8,
         9, 14, 15,  5,  2,  8, 12,  3,  7,  0,  4, 10,  1, 13, 11,  6,
         4,  3,  2, 12,  9,  5, 15, 10, 11, 14,  1,  7,  6,  0,  8, 13 ),

      (  4, 11,  2, 14, 15,  0,  8, 13,  3, 12,  9,  7,  5, 10,  6,  1,
        13,  0, 11,  7,  4,  9,  1, 10, 14,  3,  5, 12,  2, 15,  8,  6,
         1,  4, 11, 13, 12,  3,  7, 14, 10, 15,  6,  8,  0,  5,  9,  2,
         6, 11, 13,  8,  1,  4, 10,  7,  9,  5,  0, 15, 14,  2,  3, 12 ),

      ( 13,  2,  8,  4,  6, 15, 11,  1, 10,  9,  3, 14,  5,  0, 12,  7,
         1, 15, 13,  8, 10,  3,  7,  4, 12,  5,  6, 11,  0, 14,  9,  2,
         7, 11,  4,  1,  9, 12, 14,  2,  0,  6, 10, 13, 15,  3,  5,  8,
         2,  1, 14,  7,  4, 10,  8, 13, 15, 12,  9,  0,  3,  5,  6, 11 ) );

  BitPMC1: array[0..55] of Byte = //選擇置換PC-1
    ( 56, 48, 40, 32, 24, 16,  8,
       0, 57, 49, 41, 33, 25, 17,
       9,  1, 58, 50, 42, 34, 26,
      18, 10,  2, 59, 51, 43, 35,
      62, 54, 46, 38, 30, 22, 14,
       6, 61, 53, 45, 37, 29, 21,
      13,  5, 60, 52, 44, 36, 28,
      20, 12,  4, 27, 19, 11,  3 );

  BitPMC2: array[0..47] of Byte =//選擇置換PC-2 
    ( 13, 16, 10, 23,  0,  4,
       2, 27, 14,  5, 20,  9,
      22, 18, 11,  3, 25,  7,
      15,  6, 26, 19, 12,  1,
      40, 51, 30, 36, 46, 54,
      29, 39, 50, 44, 32, 47,
      43, 48, 38, 55, 33, 52,
      45, 41, 49, 35, 28, 31 );

var
  Form1: TForm1;
  subKey: array[0..15] of TKeyByte;  

implementation

{$R *.dfm}

procedure initPermutation(var inData: array of Byte);
var
  newData: array[0..7] of Byte;
  i: Integer;
begin
  FillChar(newData, 8, 0);
  for i := 0 to 63 do
    if (inData[BitIP[i] shr 3] and (1 shl (7- (BitIP[i] and $07)))) <> 0 then
      newData[i shr 3] := newData[i shr 3] or (1 shl (7-(i and $07)));
  for i := 0 to 7 do inData[i] := newData[i];
end;

procedure conversePermutation(var inData: array of Byte);
var
  newData: array[0..7] of Byte;
  i: Integer;
begin
  FillChar(newData, 8, 0);
  for i := 0 to 63 do
    if (inData[BitCP[i] shr 3] and (1 shl (7-(BitCP[i] and $07)))) <> 0 then
      newData[i shr 3] := newData[i shr 3] or (1 shl (7-(i and $07)));
  for i := 0 to 7 do inData[i] := newData[i];
end;

procedure expand(inData: array of Byte; var outData: array of Byte);
var
  i: Integer;
begin
  FillChar(outData, 6, 0);
  for i := 0 to 47 do
    if (inData[BitExp[i] shr 3] and (1 shl (7-(BitExp[i] and $07)))) <> 0 then
      outData[i shr 3] := outData[i shr 3] or (1 shl (7-(i and $07)));
end;

procedure permutation(var inData: array of Byte);
var
  newData: array[0..3] of Byte;
  i: Integer;
begin
  FillChar(newData, 4, 0);
  for i := 0 to 31 do
    if (inData[BitPM[i] shr 3] and (1 shl (7-(BitPM[i] and $07)))) <> 0 then
      newData[i shr 3] := newData[i shr 3] or (1 shl (7-(i and $07)));
  for i := 0 to 3 do inData[i] := newData[i];
end;

function si(s,inByte: Byte): Byte;
var
  c: Byte;
begin
  c := (inByte and $20) or ((inByte and $1e) shr 1) or
    ((inByte and $01) shl 4);
  Result := (sBox[s][c] and $0f);
end;

procedure permutationChoose1(inData: array of Byte;
  var outData: array of Byte);
var
  i: Integer;
begin
  FillChar(outData, 7, 0);
  for i := 0 to 55 do
    if (inData[BitPMC1[i] shr 3] and (1 shl (7-(BitPMC1[i] and $07)))) <> 0 then
      outData[i shr 3] := outData[i shr 3] or (1 shl (7-(i and $07)));
end;

procedure permutationChoose2(inData: array of Byte;
  var outData: array of Byte);
var
  i: Integer;
begin
  FillChar(outData, 6, 0);
  for i := 0 to 47 do
    if (inData[BitPMC2[i] shr 3] and (1 shl (7-(BitPMC2[i] and $07)))) <> 0 then
      outData[i shr 3] := outData[i shr 3] or (1 shl (7-(i and $07)));
end;

procedure cycleMove(var inData: array of Byte; bitMove: Byte);
var
  i: Integer;
begin
  for i := 0 to bitMove - 1 do
  begin
    inData[0] := (inData[0] shl 1) or (inData[1] shr 7);
    inData[1] := (inData[1] shl 1) or (inData[2] shr 7);
    inData[2] := (inData[2] shl 1) or (inData[3] shr 7);
    inData[3] := (inData[3] shl 1) or ((inData[0] and $10) shr 4);
    inData[0] := (inData[0] and $0f);
  end;
end;

procedure makeKey(inKey: array of Byte; var outKey: array of TKeyByte);
const
  bitDisplace: array[0..15] of Byte =
    ( 1,1,2,2, 2,2,2,2, 1,2,2,2, 2,2,2,1 );
var
  outData56: array[0..6] of Byte;
  key28l: array[0..3] of Byte;
  key28r: array[0..3] of Byte;
  key56o: array[0..6] of Byte;
  i: Integer;
begin
  permutationChoose1(inKey, outData56);

  key28l[0] := outData56[0] shr 4;
  key28l[1] := (outData56[0] shl 4) or (outData56[1] shr 4);
  key28l[2] := (outData56[1] shl 4) or (outData56[2] shr 4);
  key28l[3] := (outData56[2] shl 4) or (outData56[3] shr 4);
  key28r[0] := outData56[3] and $0f;
  key28r[1] := outData56[4];
  key28r[2] := outData56[5];
  key28r[3] := outData56[6];

  for i := 0 to 15 do
  begin

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩成人在线| 一区二区三区在线观看网站| 国产日韩av一区二区| 亚洲一级二级三级在线免费观看| 国产99一区视频免费| 欧美日韩国产高清一区二区| 国产精品国产自产拍高清av| 美国十次综合导航| 欧美日韩亚洲国产综合| 国产精品国产三级国产普通话三级| 美国三级日本三级久久99 | 毛片基地黄久久久久久天堂| 色综合中文综合网| 91超碰这里只有精品国产| 国产精品久久久久久久蜜臀| 韩国成人福利片在线播放| 欧美亚洲日本一区| 亚洲视频一区二区免费在线观看| 国产成人亚洲综合a∨婷婷图片| 欧美一级在线视频| 三级一区在线视频先锋| 欧美丝袜丝交足nylons图片| 亚洲视频在线观看一区| 成人sese在线| 亚洲国产精品激情在线观看| 国产成人精品亚洲午夜麻豆| 久久久久久久久久电影| 国产综合久久久久影院| 精品成人一区二区三区| 激情欧美一区二区| 亚洲精品在线电影| 国产精品综合网| 久久精品视频在线看| 国产91色综合久久免费分享| 中文一区一区三区高中清不卡| 国产黄色成人av| 国产精品免费av| 99国内精品久久| 一区二区三区毛片| 在线成人高清不卡| 麻豆成人免费电影| 久久久久国产精品人| 成人深夜在线观看| 亚洲另类在线一区| 欧美丰满少妇xxxxx高潮对白 | 亚洲视频一区二区免费在线观看| 一本一本久久a久久精品综合麻豆| 亚洲美女淫视频| 欧美人与性动xxxx| 国产真实乱偷精品视频免| 久久久久久**毛片大全| 94-欧美-setu| 日本成人在线一区| 国产网站一区二区三区| 欧洲一区二区三区免费视频| 日本欧美肥老太交大片| 国产精品拍天天在线| 欧美自拍丝袜亚洲| 久久狠狠亚洲综合| 国产精品亲子伦对白| 欧美日韩国产精品成人| 国产精品性做久久久久久| 亚洲制服欧美中文字幕中文字幕| 欧美一区二区三区在线电影| 国产不卡视频一区二区三区| 亚洲国产精品一区二区久久恐怖片| 欧美一区二区播放| 99久久婷婷国产综合精品| 日韩av在线播放中文字幕| 国产欧美综合在线观看第十页| 色哟哟一区二区在线观看| 老鸭窝一区二区久久精品| 亚洲精品免费播放| 国产亚洲欧美激情| 欧美绝品在线观看成人午夜影视| 国产v综合v亚洲欧| 免费美女久久99| 一区二区三区在线观看国产| 精品国产污污免费网站入口 | 久久精品夜色噜噜亚洲a∨| 欧洲人成人精品| 成人一级片在线观看| 日韩国产成人精品| 亚洲精品欧美在线| 国产精品女同一区二区三区| 91精品国产综合久久精品| 色婷婷综合久久久中文一区二区| 精久久久久久久久久久| 午夜亚洲国产au精品一区二区| 欧美经典一区二区三区| 日韩欧美一级精品久久| 欧美三级资源在线| 91福利在线播放| av电影在线观看完整版一区二区| 麻豆中文一区二区| 日本成人超碰在线观看| 亚洲国产视频一区二区| 亚洲男女一区二区三区| 中文字幕一区二区视频| 国产精品久久久一本精品| wwwwxxxxx欧美| 久久综合久久99| 精品少妇一区二区三区| 日韩视频永久免费| 91精品国产欧美一区二区| 91精品国产品国语在线不卡| 91精品国产综合久久小美女| 欧美日韩一区中文字幕| 精品视频在线免费看| 欧美日韩在线精品一区二区三区激情 | 色综合婷婷久久| 91亚洲国产成人精品一区二区三| www.欧美精品一二区| eeuss影院一区二区三区| www.在线成人| 91影院在线观看| 在线免费精品视频| 在线观看91av| 精品国偷自产国产一区| 精品国产区一区| 国产亚洲欧美中文| 国产精品国产自产拍高清av| 最新久久zyz资源站| 亚洲精品成人悠悠色影视| 亚洲综合图片区| 日韩不卡在线观看日韩不卡视频| 免费成人小视频| 国产91清纯白嫩初高中在线观看| 成人免费看黄yyy456| 色综合天天综合在线视频| 欧美日韩精品一区二区三区蜜桃| 91精品国产aⅴ一区二区| 2021中文字幕一区亚洲| 自拍偷拍欧美精品| 天天操天天综合网| 国产精品影视在线观看| 成人久久视频在线观看| 色狠狠av一区二区三区| 欧美一级黄色录像| 中文一区二区完整视频在线观看| 一区二区三区欧美| 久久精品噜噜噜成人av农村| 成人一区在线看| 欧美四级电影网| 久久久久久久综合日本| 亚洲一区二区精品久久av| 激情五月婷婷综合| 在线看一区二区| 久久久精品日韩欧美| 五月激情综合色| 成人免费看的视频| 日韩一区二区电影网| 中文字幕亚洲一区二区av在线| 午夜激情一区二区三区| 国产馆精品极品| 91精品国产麻豆| 亚洲欧美日韩在线不卡| 精品一区二区成人精品| 91天堂素人约啪| 久久久亚洲欧洲日产国码αv| 一区二区三区丝袜| 国产宾馆实践打屁股91| 3atv一区二区三区| 一区在线观看视频| 久久超碰97中文字幕| 欧美日韩免费不卡视频一区二区三区 | 国产999精品久久| 欧美一区二区三区免费观看视频 | 91美女片黄在线观看| 精品国免费一区二区三区| 五月婷婷激情综合| 色综合亚洲欧洲| 中文字幕五月欧美| 国产中文字幕一区| 精品国内片67194| 日本欧洲一区二区| 精品婷婷伊人一区三区三| 亚洲私人黄色宅男| 成人黄色免费短视频| 久久综合一区二区| 免费人成在线不卡| 欧美一区二区三区公司| 亚洲午夜激情网页| 色综合久久99| 一区二区三区在线免费| 一本色道a无线码一区v| 亚洲人成在线观看一区二区| 99久久久无码国产精品| 国产视频一区二区在线观看| 久久精品国产亚洲高清剧情介绍 | 99国内精品久久| 国产精品色在线观看| 懂色av中文一区二区三区| 2023国产精华国产精品| 国产一区二区免费看| 久久久久久久久久久久久久久99| 国产制服丝袜一区| 久久九九久久九九| av高清久久久| 亚洲综合色在线|