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

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

?? unit1.~pas

?? des的delphi實現 由delphi編程 控件實現
?? ~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
    cycleMove(key28l, bitDisplace[i]);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人国产电影网| 中日韩av电影| 91精品欧美一区二区三区综合在 | 日日摸夜夜添夜夜添亚洲女人| 国产精品国产a级| 国产精品午夜免费| 中文字幕免费不卡| 国产精品每日更新| 中文字幕亚洲视频| 亚洲精品欧美二区三区中文字幕| 亚洲精品第一国产综合野| 亚洲色欲色欲www| 亚洲精品日韩综合观看成人91| 亚洲视频一二三区| 一区二区三区欧美久久| 亚洲第一会所有码转帖| 午夜影院久久久| 日本美女一区二区三区| 狠狠色综合日日| 成人自拍视频在线观看| 91免费观看在线| 在线视频欧美精品| 欧美高清激情brazzers| 日韩一区二区三| 久久综合99re88久久爱| 中文字幕一区免费在线观看| 亚洲影视在线播放| 舔着乳尖日韩一区| 狠狠色丁香九九婷婷综合五月| 国产成都精品91一区二区三| 色综合夜色一区| 678五月天丁香亚洲综合网| 日韩欧美成人一区| 欧美激情一区二区三区四区| 亚洲色欲色欲www| 免费在线欧美视频| 国产成人免费9x9x人网站视频| 91啪在线观看| 日韩欧美黄色影院| 国产目拍亚洲精品99久久精品| 亚洲另类色综合网站| 日韩av一二三| 国产成人精品免费网站| 在线观看日韩一区| 国产亚洲一区二区三区在线观看 | 亚洲免费高清视频在线| 天天做天天摸天天爽国产一区| 国产老肥熟一区二区三区| 色综合久久综合网欧美综合网 | 一区二区三区在线视频免费| 婷婷亚洲久悠悠色悠在线播放| 国内精品在线播放| 在线免费av一区| 精品国产乱码91久久久久久网站| 亚洲色图在线视频| 久久精品国产成人一区二区三区 | 日韩视频国产视频| 中文字幕日韩一区| 老司机免费视频一区二区| 不卡在线观看av| 日韩欧美视频在线| 亚洲综合一二区| 成人综合在线观看| 欧美日韩电影在线播放| 中文字幕成人在线观看| 日本91福利区| 色婷婷久久久亚洲一区二区三区| 久久久久国色av免费看影院| 亚洲国产sm捆绑调教视频 | 国产大片一区二区| 欧美日韩高清影院| 亚洲桃色在线一区| 国产精品1区二区.| 日韩一区二区三区精品视频| 亚洲综合久久av| 粉嫩久久99精品久久久久久夜| 日韩午夜激情视频| 一区二区日韩av| 北条麻妃国产九九精品视频| 久久综合久色欧美综合狠狠| 五月天久久比比资源色| 一本到高清视频免费精品| 国产欧美一二三区| 极品少妇一区二区| 日韩视频在线你懂得| 亚洲影院在线观看| 日本韩国欧美三级| 亚洲欧洲日本在线| 日韩三级精品电影久久久| 又紧又大又爽精品一区二区| 成人毛片视频在线观看| 久久精品视频在线免费观看| 美国av一区二区| 91.麻豆视频| 亚洲电影欧美电影有声小说| 日本电影欧美片| 亚洲免费观看高清完整版在线观看| 9久草视频在线视频精品| 国产精品久久看| 成人黄色a**站在线观看| 国产女人水真多18毛片18精品视频 | 欧美日韩国产精品自在自线| 一区二区三区加勒比av| 91麻豆.com| 亚洲精品美腿丝袜| 色8久久精品久久久久久蜜| 日韩一区欧美一区| 色综合久久综合中文综合网| 亚洲精品国产品国语在线app| 色综合久久久久久久久久久| 亚洲免费观看在线观看| 在线观看国产一区二区| 午夜精品福利视频网站| 在线播放中文一区| 久久成人综合网| 精品国产露脸精彩对白| 国产成人亚洲综合a∨猫咪| 国产精品久久影院| 色综合久久综合网欧美综合网| 亚洲综合在线第一页| 欧美肥妇free| 国产原创一区二区三区| 国产精品午夜春色av| 99re66热这里只有精品3直播 | 国产一区二区三区| 国产亲近乱来精品视频| 99精品久久免费看蜜臀剧情介绍| 亚洲日本va午夜在线电影| 欧美视频一区二区| 久久er精品视频| 国产欧美综合色| 91免费观看在线| 日本sm残虐另类| 国产三级久久久| 91麻豆成人久久精品二区三区| 天天色 色综合| 久久综合九色综合欧美98| 成人午夜看片网址| 亚洲图片欧美综合| 欧美成人激情免费网| 成人v精品蜜桃久久一区| 亚洲精品乱码久久久久久| 911精品产国品一二三产区| 国产精品亚洲视频| 亚洲国产日韩a在线播放| 久久综合久久综合亚洲| 色欧美片视频在线观看在线视频| 蜜桃视频在线观看一区| 国产精品久久二区二区| 67194成人在线观看| 粉嫩13p一区二区三区| 亚洲午夜在线观看视频在线| 久久女同互慰一区二区三区| 色哟哟在线观看一区二区三区| 毛片一区二区三区| 亚洲视频一区在线| 亚洲精品一区二区在线观看| 91黄视频在线观看| 国产精品99久久久久久久vr| 亚洲曰韩产成在线| 日本一二三不卡| 欧美一区二区三区四区久久| 成人综合激情网| 麻豆国产精品官网| 亚洲另类一区二区| 国产欧美精品日韩区二区麻豆天美| 欧美日韩在线一区二区| 国产成人综合自拍| 欧美aa在线视频| 亚洲高清在线精品| 国产精品私人自拍| 精品国产电影一区二区| 精品视频在线看| av高清久久久| 国产美女视频一区| 日本亚洲电影天堂| 亚洲最新视频在线观看| 国产精品久久久久影院色老大 | 久久久久久久久久久久电影 | 久久综合久色欧美综合狠狠| 欧美三级日本三级少妇99| av在线播放一区二区三区| 精品一区二区日韩| 日韩国产欧美在线视频| 亚洲制服欧美中文字幕中文字幕| 欧美激情中文字幕一区二区| 26uuu色噜噜精品一区| 日韩一卡二卡三卡国产欧美| 欧美在线免费播放| 99精品国产一区二区三区不卡| 国产在线视频不卡二| 免费欧美高清视频| 天涯成人国产亚洲精品一区av| 亚洲自拍偷拍麻豆| 一区二区三区在线观看网站| 中文字幕佐山爱一区二区免费| 欧美国产综合色视频| 久久久噜噜噜久噜久久综合| 精品99一区二区| 欧美不卡视频一区|