h4include

#!/bin/sh
find_ubuntu(){
       sourcedir=$1
    directdir=$2
if [ -f /var/tmp/ubuntu ];then
    rm /var/tmp/ubuntu
fi
touch /var/tmp/ubuntu
if [ -f /var/tmp/ubuntuall ];then
    rm /var/tmp/ubuntuall
fi
touch /var/tmp/ubuntuall
find $directdir/usr/include/ ! -type d -name "*.h"  |  while read file
do
    if [ -z "$file"  ];then
        continue
    fi
    ex=`basename $(ls -l $file | awk '{if(($1~/^-/) || ($1~/^l/)) print $8}')`
    if [ "$ex" != "" ];then
        echo $ex
        echo $ex>>/var/tmp/ubuntu
        echo "write $file"
        echo $file>>/var/tmp/ubuntuall
    fi
done
}


find_copy(){
    sourcedir=$1
    directdir=$2
echo "$sourcedir"

find $sourcedir/include  ! -type d -name "*.h"  |  while read file
do
    if [ ! -z `ls -l $file | awk '{if(($1~/^-/) || ($1~/^l/)) print $8}'` ];then
        ex=`basename $(ls -l $file | awk '{if(($1~/^-/) || ($1~/^l/)) print $8}')`
        if [ "$ex" != "" ];then
            grep -q "\<$ex" /var/tmp/ubuntu
            if [ "$?" -eq "1" ];then
                dname=`dirname $file`
                tmpdir=`echo "$dname $sourcedir" | awk '{print substr($1,1+length($2))}'`
                echo $tmpdir
                echo "h3 include $file"
                if [ ! -d $directdir/$tmpdir ];then
                    mkdir -p $directdir/$tmpdir
                fi
                cp -a $file $directdir/$tmpdir
            else
                dname=`dirname $file`
                tmpdir=`echo "$dname $sourcedir" | awk '{print substr($1,1+length($2))}'`
                if [ ! -z `echo $tmpdir | grep "^/"` ];then
                    tmpdir=`echo $tmpdir | awk '{print substr($1,2)}'`
                fi
                ex=`basename $file`
                ex=$tmpdir/$ex
                grep -q "\<$ex" /var/tmp/ubuntuall
                if [ "$?" -eq "1" ];then
                    if [ ! -d $directdir/$tmpdir ];then
                        mkdir -p $directdir/$tmpdir
                    fi
                    cp -a $file $directdir/$tmpdir
                fi
            fi
        fi
    fi
done

}



if [ -z "$1" -o -z "$2" ];then
    echo "error:lack of parameter"
    echo "usage:sh h3only.sh sourcedir dirctdir"
    echo "sourcedir"
    echo "    intel filesystem directory"
    echo "directdir"
    echo "    your filesystem dirctory"
    exit 1
fi
if [ ! -d $1 ];then
    echo "$1 is not exits"
    exit 1
fi
sourcedir=`realpath $1`
cdir=`pwd`
echo "source dir $sourcedir"
if [ ! -d $2 ];then
    mkdir -p $2
fi
directdir=`realpath $2`
echo "direct dir $directdir"


find_ubuntu $sourcedir  $directdir
find_copy $sourcedir  $directdir


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
//SHA1.c #include <stdio.h> #include <string.h> #include <Windows.h> void creat_w( char input[64],unsigned long w[80]){ int i,j; unsigned long temp,temp1; for(i=0;i<16;i++){ j=4*i; w[i]=((long)input[j])<<24 |((long)input[1+j])<<16|((long)input[2+j])<<8|((long)input[3+j])<<0; } for(i=16;i<80;i++){ w[i]=w[i-16]^w[i-14]^w[i-8]^w[i-3]; temp=w[i]<<1; temp1=w[i]>>31; w[i]=temp|temp1; } } void ms_len(long a,char intput[64]){ unsigned long temp3,p1; int i,j; temp3=0; p1=~(~temp3<<8); for(i=0;i<4;i++){ j=8*i; intput[63-i]=(char)((a&(p1<<j))>>j); } } int main(){ unsigned long H0=0x67452301,H1=0xefcdab89,H2=0x98badcfe,H3=0x10325476,H4=0xc3d2e1f0; unsigned long A,B,C,D,E,temp,temp1,temp2,temp3,k,f; int i,flag; unsigned long w[80]; char input[64]; long x;int n; printf("输入明文:"); scanf("%s",input); n=strlen(input); if(n<57){ x=n*8; ms_len(x,input); if(n==56){ for(i=n;i<60;i++) input[i]=0; } else{ input[n]=128; for(i=n+1;i<60;i++) input[i]=0; } } creat_w(input,w); /*for(i=0;i<80;i++) printf("%lx,",w[i]);*/ printf("\n"); A=H0;B=H1;C=H2;D=H3;E=H4; for(i=1;i < 80;i++){ flag=i/20; switch(flag){ case 0: k=0x5a827999;f=(B&C)|(~B&D);break; case 1: k=0x6ed9eba1;f=B^C^D;break; case 2: k=0x8f1bbcdc;f=(B&C)|(B&D)|(C&D);break; case 3: k=0xca62c1d6;f=B^C^D;break; } /*printf("%lx,%lx\n",k,f); */ temp1=A<<5; temp2=A>>27; temp3=temp1|temp2; temp=temp3+f+E+w[i]+k; E=D; D=C; temp1=B<<30; temp2=B>>2; C=temp1|temp2; B=A; A=temp; printf("第%d步:",i+1); printf("A = %lx,B = %lx,C = %lx,D = %lx,E = %lx\n",A,B,C,D,E); } H0=H0+A; H1=H1+B; H2=H2+C; H3=H3+D; H4=H4+E; printf("\n哈希值:\n"); printf("%lx%lx%lx%lx%lx\n",H0,H1,H2,H3,H4); system("pause"); }写出这段代码每一行的意思
06-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值