亚洲欧美第一页_禁久久精品乱码_粉嫩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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
a亚洲天堂av| 在线不卡免费av| 在线日韩国产精品| 3d动漫精品啪啪一区二区竹菊| 3atv在线一区二区三区| 久久这里只有精品首页| 亚洲精品一二三四区| 久久国产综合精品| 一本大道久久a久久精品综合| 欧美日韩成人综合在线一区二区| 欧美日韩视频在线一区二区| 久久蜜臀中文字幕| 亚洲成人av免费| 丁香天五香天堂综合| 在线成人免费视频| 国产精品进线69影院| 亚洲视频每日更新| 国产乱淫av一区二区三区| 欧洲精品视频在线观看| 久久久久久久久久久99999| 亚洲综合色婷婷| 成人国产精品免费网站| 日韩欧美一级二级| 国产精品亲子乱子伦xxxx裸| 日本不卡免费在线视频| 91在线观看美女| 国产三级精品在线| 日韩电影在线一区| 欧美性生活久久| 久久麻豆一区二区| 久久99精品国产| 欧美日韩国产一二三| 亚洲精品一卡二卡| 白白色 亚洲乱淫| 久久久久久久久久电影| 精彩视频一区二区三区| 在线播放中文一区| 一区二区三区欧美日韩| 91社区在线播放| 国产精品午夜春色av| 韩国av一区二区三区| 91精品国产入口| 亚洲福利视频导航| 欧美性一级生活| 综合久久久久久| www.日韩av| 国产精品色在线观看| 日韩精品欧美成人高清一区二区| 92国产精品观看| 国产精品伦一区二区三级视频| 国产一区在线视频| 久久一区二区三区四区| 日韩成人一级大片| 日韩美女视频在线| 久久99九九99精品| 精品国产凹凸成av人网站| 紧缚奴在线一区二区三区| 91精品免费在线观看| 日本不卡中文字幕| 日韩色视频在线观看| 久色婷婷小香蕉久久| 欧美一区二区三区思思人| 青青国产91久久久久久| 久久男人中文字幕资源站| 国产成人午夜精品影院观看视频| 久久久久国产精品人| 成人网在线免费视频| 一区二区成人在线视频| 69精品人人人人| 国产乱人伦偷精品视频免下载| 欧美精品乱码久久久久久| 国产色综合一区| 国产精品1区2区3区在线观看| 国产精品一线二线三线精华| 久久综合久久鬼色| 自拍偷自拍亚洲精品播放| 制服丝袜在线91| 国产盗摄视频一区二区三区| 成人欧美一区二区三区黑人麻豆 | 久久成人久久爱| 日本一区二区三区dvd视频在线| 99在线精品一区二区三区| 一区二区在线电影| 欧美丰满少妇xxxxx高潮对白| 国产一区二区网址| 亚洲国产精品麻豆| 久久综合九色欧美综合狠狠| 91美女福利视频| 美国欧美日韩国产在线播放| 国产精品久久久久久久久晋中| 欧美精品乱码久久久久久| 国产jizzjizz一区二区| 午夜电影一区二区三区| 国产女同性恋一区二区| 91网址在线看| 国产成人精品一区二| 天天亚洲美女在线视频| 亚洲国产精品成人久久综合一区| 欧美视频一区二区三区在线观看| 久久国产精品99久久久久久老狼| 国产精品久久久久久久久免费樱桃| 欧美色综合网站| 久久精品99国产精品| 一区二区三区欧美久久| 国产欧美一区二区精品秋霞影院| 在线播放中文字幕一区| 色av综合在线| 波多野结衣的一区二区三区| 精品亚洲国产成人av制服丝袜 | 樱花草国产18久久久久| 激情五月播播久久久精品| 日本韩国欧美国产| 美女脱光内衣内裤视频久久影院| 2024国产精品| 欧美精品一区二区三区视频 | 日韩视频一区二区在线观看| 日本丰满少妇一区二区三区| 91浏览器入口在线观看| 97久久精品人人做人人爽50路| 国产91精品精华液一区二区三区| 激情综合网av| 国产电影一区二区三区| 成人午夜视频福利| 北条麻妃国产九九精品视频| 91免费视频观看| 欧美视频一区二| 日韩欧美成人一区二区| 精品99一区二区三区| 欧美激情综合网| 1区2区3区欧美| 午夜在线成人av| 麻豆精品在线看| 国产精品123| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 91麻豆精品国产自产在线观看一区| 在线电影欧美成精品| 日韩精品一区二区三区四区视频| 欧美一区二区三区四区久久| 国产亚洲美州欧州综合国| 亚洲色图另类专区| 日韩高清在线电影| 国内精品国产三级国产a久久| av一本久道久久综合久久鬼色| 在线精品亚洲一区二区不卡| 91精品国产综合久久婷婷香蕉| 久久久国产综合精品女国产盗摄| 国产精品美女久久久久aⅴ国产馆| 一区二区三区毛片| 极品少妇xxxx偷拍精品少妇| 96av麻豆蜜桃一区二区| 日韩一区二区不卡| 欧美国产一区二区| 肉肉av福利一精品导航| 国产一区二区在线看| 欧美午夜精品理论片a级按摩| 久久久五月婷婷| 亚洲影视在线播放| 国产乱子伦视频一区二区三区| 色婷婷综合久久久| 久久久久久久久久久99999| 亚洲国产精品人人做人人爽| 国产精品乡下勾搭老头1| 欧美性色综合网| 亚洲国产精品99久久久久久久久| 亚洲国产婷婷综合在线精品| 成人小视频免费观看| 欧美va亚洲va香蕉在线| 亚洲综合色网站| 成人免费视频视频在线观看免费 | av亚洲精华国产精华精| 日韩欧美色综合网站| 亚洲一区二区av在线| 丁香婷婷综合色啪| www成人在线观看| 奇米一区二区三区| 欧美性一区二区| 亚洲欧美在线高清| 国产成人在线电影| 久久久久久毛片| 久久99精品久久久久| 欧美肥大bbwbbw高潮| 一区二区三区不卡视频在线观看| 国产高清成人在线| 久久嫩草精品久久久久| 精品一二三四在线| 91精品国产综合久久久久久漫画| 一区二区三区不卡视频 | 成人h精品动漫一区二区三区| 日韩欧美你懂的| 美女一区二区三区| 欧美一级夜夜爽| 日韩成人一区二区三区在线观看| 欧美视频日韩视频| 亚洲日本成人在线观看| 成人av在线资源网| 日韩美女视频19| 色综合咪咪久久| 亚洲色图.com| 色哟哟欧美精品| 亚洲电影一级黄|