当前位置: 首页 > news >正文

域名注册的网站都有哪些/企业网站制作

域名注册的网站都有哪些,企业网站制作,wordpress 页脚改颜色,陕西建设集团韩城公司网站本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?id615391857885&spma1z10.5-c-s.w4002-21818769070.11.3d2f789eOUPJBK <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xm…

本示例使用的发卡器:
https://item.taobao.com/item.htm?id=615391857885&spm=a1z10.5-c-s.w4002-21818769070.11.3d2f789eOUPJBK

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:padding="3dp"tools:context=".IcCardActivity"><androidx.appcompat.widget.Toolbarandroid:id="@+id/toolbar"android:layout_width="match_parent"android:layout_height="30dp"android:background="?attr/colorPrimary"app:navigationIcon="@drawable/baseline_arrow_back_ios_24"app:titleTextColor="@color/white"tools:ignore="MissingConstraints"tools:layout_editor_absoluteY="0dp"><TextViewandroid:id="@+id/TextViewlabelDispleft"android:layout_width="wrap_content"android:layout_height="match_parent"android:text="返回"android:textColor="@color/white"android:textSize="16sp"android:gravity="center"android:onClick="retmain" /><TextViewandroid:id="@+id/TextViewlabelDisp"android:layout_width="match_parent"android:layout_height="match_parent"android:text="IC卡测试页"android:textColor="@color/white"android:gravity="center_horizontal|bottom"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="@+id/TextViewlabelDispleft"app:layout_constraintTop_toTopOf="parent" /></androidx.appcompat.widget.Toolbar><TextViewandroid:id="@+id/sample_text"android:layout_width="fill_parent"android:layout_height="150dp"android:padding="3dp"android:text="操作结果"android:textSize="12sp"android:maxLength="900"android:maxLines="16"android:background="@drawable/shape4border"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintBottom_toBottomOf="parent"        /><ScrollViewandroid:id="@+id/scrollViewIC"android:layout_width="fill_parent"android:layout_height="0dp"android:layout_marginBottom="3dp"android:scrollbars="horizontal"app:layout_constraintBottom_toTopOf="@+id/sample_text"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toBottomOf="@+id/toolbar"app:layout_constraintVertical_bias="0.0"><androidx.constraintlayout.widget.ConstraintLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:padding="3dp"><Buttonandroid:id="@+id/btnPiccrequest"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="8dp"android:onClick="piccrequest"android:padding="3dp"android:text="读取IC卡卡号"android:textSize="12sp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toTopOf="parent" /><TextViewandroid:id="@+id/TextViewlabeluid"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:text="UID:"android:textSize="12sp"app:layout_constraintBottom_toBottomOf="@+id/btnPiccrequest"app:layout_constraintLeft_toRightOf="@+id/btnPiccrequest"app:layout_constraintTop_toTopOf="@+id/btnPiccrequest" /><EditTextandroid:id="@+id/TextViewuid"android:layout_width="75dp"android:layout_height="wrap_content"android:background="@drawable/shape4border"android:digits="0123456789ABCDEFabcdef"android:gravity="center"android:text=""android:textColor="#FF0000"android:textSize="14sp"app:layout_constraintBottom_toBottomOf="@+id/TextViewlabeluid"app:layout_constraintLeft_toRightOf="@+id/TextViewlabeluid"app:layout_constraintTop_toTopOf="@+id/TextViewlabeluid" /><TextViewandroid:id="@+id/TextViewlabelconv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:text="转8H10D码:"android:textSize="12sp"app:layout_constraintBottom_toBottomOf="@+id/TextViewuid"app:layout_constraintLeft_toRightOf="@+id/TextViewuid"app:layout_constraintTop_toTopOf="@+id/TextViewuid" /><TextViewandroid:id="@+id/TextViewlabel8h10d"android:layout_width="95dp"android:layout_height="wrap_content"android:layout_marginLeft="5dp"android:background="@drawable/shape4border"android:gravity="center"android:text=""android:textColor="#FF0000"android:textSize="14sp"app:layout_constraintBottom_toBottomOf="@+id/TextViewlabelconv"app:layout_constraintLeft_toRightOf="@+id/TextViewlabelconv"app:layout_constraintTop_toTopOf="@+id/TextViewlabelconv" /><Buttonandroid:id="@+id/btnwriteuid"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="2dp"android:onClick="piccwriteserial"android:text="将上面UID号写入到CUID卡内"android:textSize="12sp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toBottomOf="@+id/btnPiccrequest" /><Buttonandroid:id="@+id/butt_writekeytoe2"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="2dp"android:onClick="writekeytoe2"android:text="将下面的卡片认证密钥装载到发卡器内部芯片,使密钥不外泄"android:textSize="12sp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toBottomOf="@+id/btnwriteuid" /><TextViewandroid:id="@+id/TextViewlabelArea"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="15dp"android:text="选择读写区号:"android:textSize="12sp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toBottomOf="@+id/butt_writekeytoe2" /><Spinnerandroid:id="@+id/SpinnerArea"android:layout_width="130dp"android:layout_height="wrap_content"android:entries="@array/AreaNumber"android:spinnerMode="dropdown"android:theme="@style/my_spinner_style"app:layout_constraintBottom_toBottomOf="@+id/TextViewlabelArea"app:layout_constraintLeft_toRightOf="@+id/TextViewlabelArea"app:layout_constraintTop_toTopOf="@+id/TextViewlabelArea" /><TextViewandroid:id="@+id/TextViewlabelkeymodel"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="15dp"android:layout_marginTop="5dp"android:text="密钥方式:"android:textSize="12sp"app:layout_constraintBottom_toBottomOf="@+id/SpinnerArea"app:layout_constraintLeft_toRightOf="@+id/SpinnerArea"app:layout_constraintTop_toTopOf="@+id/SpinnerArea" /><Spinnerandroid:id="@+id/SpinnerInOutKey"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="2dp"android:entries="@array/M1InOutKey"android:spinnerMode="dropdown"android:theme="@style/my_spinner_style"app:layout_constraintBottom_toBottomOf="@+id/TextViewlabelkeymodel"app:layout_constraintLeft_toRightOf="@+id/TextViewlabelkeymodel"app:layout_constraintTop_toTopOf="@+id/TextViewlabelkeymodel" /><TextViewandroid:id="@+id/TextViewlabelSelABkey"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:text="密钥认证类型:"android:textSize="12sp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toBottomOf="@+id/TextViewlabelArea" /><Spinnerandroid:id="@+id/SpinnerSelABKey"android:layout_width="130dp"android:layout_height="wrap_content"android:entries="@array/M1AuthABKey"android:spinnerMode="dropdown"android:theme="@style/my_spinner_style"app:layout_constraintBottom_toBottomOf="@+id/TextViewlabelSelABkey"app:layout_constraintLeft_toRightOf="@+id/TextViewlabelSelABkey"app:layout_constraintTop_toTopOf="@+id/TextViewlabelSelABkey" /><TextViewandroid:id="@+id/TextViewlabelkey"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="15dp"android:layout_marginTop="5dp"android:text="认证密钥:"android:textSize="12sp"app:layout_constraintBottom_toBottomOf="@+id/SpinnerSelABKey"app:layout_constraintLeft_toRightOf="@+id/SpinnerSelABKey"app:layout_constraintTop_toTopOf="@+id/SpinnerSelABKey" /><EditTextandroid:id="@+id/EdittextAuthkey"android:layout_width="100dp"android:layout_height="wrap_content"android:background="@drawable/shape4border"android:digits="0123456789ABCDEFabcdef"android:gravity="center"android:maxLength="12"android:text="FFFFFFFFFFFF"android:textColor="#0000FF"android:textSize="12sp"app:layout_constraintBottom_toBottomOf="@+id/TextViewlabelkey"app:layout_constraintLeft_toRightOf="@+id/TextViewlabelkey"app:layout_constraintTop_toTopOf="@+id/TextViewlabelkey" /><Buttonandroid:id="@+id/btnPiccreadex"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:onClick="piccreadex"android:text="轻松读取选定扇区数据"android:textSize="12sp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toBottomOf="@+id/TextViewlabelSelABkey" /><Buttonandroid:id="@+id/btnPiccwriteex"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="piccwriteex"android:text="轻松写数据到选定扇区"android:textSize="12sp"app:layout_constraintBottom_toBottomOf="@+id/btnPiccreadex"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="@+id/btnPiccreadex" /><TextViewandroid:id="@+id/TextViewlabelblock0"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:text="第0块:"android:textSize="12sp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toBottomOf="@+id/btnPiccreadex" /><EditTextandroid:id="@+id/Edittextblock0"android:layout_width="295dp"android:layout_height="wrap_content"android:layout_marginLeft="5dp"android:background="@drawable/shape4border"android:digits="0123456789ABCDEFabcdef "android:gravity="left"android:maxLength="47"android:text="00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00"android:textSize="12sp"app:layout_constraintBottom_toBottomOf="@+id/TextViewlabelblock0"app:layout_constraintLeft_toRightOf="@+id/TextViewlabelblock0"app:layout_constraintTop_toTopOf="@+id/TextViewlabelblock0" /><TextViewandroid:id="@+id/TextViewlabelblock1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:text="第1块:"android:textSize="12sp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toBottomOf="@+id/TextViewlabelblock0" /><EditTextandroid:id="@+id/Edittextblock1"android:layout_width="295dp"android:layout_height="wrap_content"android:layout_marginLeft="5dp"android:background="@drawable/shape4border"android:digits="0123456789ABCDEFabcdef "android:gravity="left"android:maxLength="47"android:text="00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00"android:textSize="12sp"app:layout_constraintBottom_toBottomOf="@+id/TextViewlabelblock1"app:layout_constraintLeft_toRightOf="@+id/TextViewlabelblock1"app:layout_constraintTop_toTopOf="@+id/TextViewlabelblock1" /><TextViewandroid:id="@+id/TextViewlabelblock2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:text="第2块:"android:textSize="12sp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toBottomOf="@+id/TextViewlabelblock1" /><EditTextandroid:id="@+id/Edittextblock2"android:layout_width="295dp"android:layout_height="wrap_content"android:layout_marginLeft="5dp"android:background="@drawable/shape4border"android:digits="0123456789ABCDEFabcdef "android:gravity="left"android:maxLength="47"android:text="00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00"android:textSize="12sp"app:layout_constraintBottom_toBottomOf="@+id/TextViewlabelblock2"app:layout_constraintLeft_toRightOf="@+id/TextViewlabelblock2"app:layout_constraintTop_toTopOf="@+id/TextViewlabelblock2" /><TextViewandroid:id="@+id/TextViewlabelblock3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:text="第3块:"android:textColor="#0000FF"android:textSize="12sp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toBottomOf="@+id/TextViewlabelblock2" /><EditTextandroid:id="@+id/Edittextblock3"android:layout_width="295dp"android:layout_height="wrap_content"android:layout_marginLeft="5dp"android:background="@drawable/shape4border"android:digits="0123456789ABCDEFabcdef "android:gravity="left"android:maxLength="47"android:text="FF FF FF FF FF FF FF 07 80 69 FF FF FF FF FF FF"android:textColor="#0000FF"android:textSize="12sp"app:layout_constraintBottom_toBottomOf="@+id/TextViewlabelblock3"app:layout_constraintLeft_toRightOf="@+id/TextViewlabelblock3"app:layout_constraintTop_toTopOf="@+id/TextViewlabelblock3" /><TextViewandroid:id="@+id/TextViewlabelnote4"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="5dp"android:text="密钥块"android:textColor="#0000FF"android:textSize="12sp"app:layout_constraintBottom_toBottomOf="@+id/Edittextblock3"app:layout_constraintLeft_toRightOf="@+id/Edittextblock3"app:layout_constraintTop_toTopOf="@+id/Edittextblock3" /><Buttonandroid:id="@+id/btnPiccchangesinglekeyex"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:onClick="piccchangesinglekeyex"android:text="修改卡片密钥"android:textSize="12sp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toBottomOf="@+id/TextViewlabelblock3" /><Spinnerandroid:id="@+id/SpinnerchangeKey"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="2dp"android:entries="@array/M1changeKey"android:spinnerMode="dropdown"android:theme="@style/my_spinner_style"app:layout_constraintBottom_toBottomOf="@+id/btnPiccchangesinglekeyex"app:layout_constraintLeft_toRightOf="@+id/btnPiccchangesinglekeyex"app:layout_constraintTop_toTopOf="@+id/btnPiccchangesinglekeyex" /><TextViewandroid:id="@+id/TextViewlabelnewkeya"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="5dp"android:text="新A密钥:"android:textSize="12sp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toBottomOf="@+id/btnPiccchangesinglekeyex" /><EditTextandroid:id="@+id/Edittextnewkeya"android:layout_width="90dp"android:layout_height="wrap_content"android:background="@drawable/shape4border"android:digits="0123456789ABCDEFabcdef"android:gravity="center"android:maxLength="12"android:text="FFFFFFFFFFFF"android:textColor="#0000FF"android:textSize="12sp"app:layout_constraintBottom_toBottomOf="@+id/TextViewlabelnewkeya"app:layout_constraintLeft_toRightOf="@+id/TextViewlabelnewkeya"app:layout_constraintTop_toTopOf="@+id/TextViewlabelnewkeya" /><TextViewandroid:id="@+id/TextViewlabelctr"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="5dp"android:text="控制字:"android:textSize="12sp"app:layout_constraintBottom_toBottomOf="@+id/Edittextnewkeya"app:layout_constraintLeft_toRightOf="@+id/Edittextnewkeya"app:layout_constraintTop_toTopOf="@+id/Edittextnewkeya" /><EditTextandroid:id="@+id/Edittextnewctr"android:layout_width="60dp"android:layout_height="wrap_content"android:background="@drawable/shape4border"android:digits="0123456789ABCDEFabcdef"android:gravity="center"android:maxLength="8"android:text="FF078069"android:textColor="#0000FF"android:textSize="12sp"app:layout_constraintBottom_toBottomOf="@+id/TextViewlabelctr"app:layout_constraintLeft_toRightOf="@+id/TextViewlabelctr"app:layout_constraintTop_toTopOf="@+id/TextViewlabelctr" /><TextViewandroid:id="@+id/TextViewlabelnewkeyb"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="5dp"android:text="B密钥:"android:textSize="12sp"app:layout_constraintBottom_toBottomOf="@+id/Edittextnewctr"app:layout_constraintLeft_toRightOf="@+id/Edittextnewctr"app:layout_constraintTop_toTopOf="@+id/Edittextnewctr" /><EditTextandroid:id="@+id/Edittextnewkeyb"android:layout_width="90dp"android:layout_height="wrap_content"android:background="@drawable/shape4border"android:digits="0123456789ABCDEFabcdef"android:gravity="center"android:maxLength="12"android:text="FFFFFFFFFFFF"android:textColor="#0000FF"android:textSize="12sp"app:layout_constraintBottom_toBottomOf="@+id/TextViewlabelnewkeyb"app:layout_constraintLeft_toRightOf="@+id/TextViewlabelnewkeyb"app:layout_constraintTop_toTopOf="@+id/TextViewlabelnewkeyb" /><Buttonandroid:id="@+id/btnPiccreadex1"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:onClick="piccreadexevery200ms"android:text="启动连续每隔0.2秒读一次卡"android:textSize="12sp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toBottomOf="@+id/TextViewlabelnewkeya" /><Buttonandroid:id="@+id/btnPiccreadsfz"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:onClick="piccreadsfz2"android:text="读取TypeB二代身份证UID"android:textSize="12sp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toBottomOf="@+id/btnPiccreadex1" /><Buttonandroid:id="@+id/btnPicciclassreadcsn"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:onClick="piccreadhidiclasscsn"android:text="读取HID iClass CSN"android:textSize="12sp"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintTop_toBottomOf="@+id/btnPiccreadsfz" /></androidx.constraintlayout.widget.ConstraintLayout></ScrollView></androidx.constraintlayout.widget.ConstraintLayout>

 

package com.usbreadertest;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;import com.reader.ourmifare;import java.util.Timer;
import java.util.TimerTask;public class IcCardActivity extends AppCompatActivity {private TextView tv;private static final byte BLOCK0_EN = 0x01;private static final byte BLOCK1_EN = 0x02;private static final byte BLOCK2_EN = 0x04;private static final byte NEEDSERIAL = 0x08;private static final byte EXTERNKEY = 0x10;private static final byte NEEDHALT = 0x20;private long proctimes;private Timer timer = null;private TimerTask task = null;private boolean iscontinue = true;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_ic_card);androidx.appcompat.widget.Toolbar toolbar=findViewById(R.id.toolbar);setSupportActionBar(toolbar);tv = findViewById(R.id.sample_text);tv.setText("操作结果");Spinner ctrkeymod=findViewById(R.id.SpinnerInOutKey);ctrkeymod.setSelection(1);Spinner ctrselauth=findViewById(R.id.SpinnerSelABKey);ctrselauth.setSelection(1);}@Overridepublic void onBackPressed(){super.onBackPressed();finish();}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {if(item.getItemId()==android.R.id.home){finish();return true;}return super.onOptionsItemSelected(item);}public void retmain(View view){finish();}//读IC卡卡号public void piccrequest(View view){byte status;//存放返回值byte[] mypiccserial = new byte[7];long cardhao;String strls;EditText ctruid=findViewById(R.id.TextViewuid);ctruid.setText("");TextView ctr8h10d=findViewById(R.id.TextViewlabel8h10d);ctr8h10d.setText("");tv.setText("");status = ourmifare.piccrequest(mypiccserial);if(status == 0){ourmifare.pcdbeep(38);String serialnumber = "";for (int i = 0; i < 4; i++) {String bytestr = "00" + Integer.toHexString(mypiccserial[i] & 0xff);serialnumber = serialnumber + bytestr.substring(bytestr.length() - 2, bytestr.length());}serialnumber=serialnumber.toUpperCase();ctruid.setText(serialnumber);cardhao = mypiccserial[3] & 0xff;cardhao *= 256;cardhao += mypiccserial[2] & 0xff;cardhao *= 256;cardhao += mypiccserial[1] & 0xff;cardhao *= 256;cardhao += mypiccserial[0] & 0xff;String strls1 = "000000000"+Long.toString(cardhao);//0305887634  123B7992strls1=strls1.substring(strls1.length()-10,strls1.length());ctr8h10d.setText(strls1);strls = "读取成功!16进制卡号为:" +serialnumber+"\n转8H10D卡号:"+ strls1;tv.setText(strls);}else{PrintErrInf(status);}}public void piccwriteserial(View view){byte status;//存放返回值byte authmode;//密码类型,用A密码或B密码byte myctrlword;//控制字byte[] mypiccserial = new byte[4];//卡序列号byte[] mypicckey = new byte[6];//密码byte[] mypiccdata = new byte[48];//卡数据缓冲byte[] myblockdata=new byte[16];//第三块数据TextView ctr8h10d=findViewById(R.id.TextViewlabel8h10d);ctr8h10d.setText("");tv.setText("");myctrlword = BLOCK0_EN ;        //控制字指定,控制字的含义请查看本公司网站提供的动态库说明Spinner ctrauthmode=findViewById(R.id.SpinnerInOutKey);if (ctrauthmode.getSelectedItemId()==1){myctrlword=(byte)(myctrlword + EXTERNKEY);        //选用外部密钥认证}Spinner crtauthabkey=findViewById(R.id.SpinnerSelABKey);authmode =(byte)crtauthabkey.getSelectedItemId();    //大于0表示用A密码认证,推荐用A密码认证EditText ctrauthkey=findViewById(R.id.EdittextAuthkey); //认证密钥String authkeystr=ctrauthkey.getText().toString().trim();if (authkeystr.length()!=12){tv.setText("认证密钥为12位16进制数,请输入正确的卡认证密钥!");return;}for (int i=0;i<6;i++){mypicckey[i]=(byte) Integer.parseInt(authkeystr.substring(i * 2, i * 2 + 2), 16);//只有用Integer.parseInt才能杜绝大于128时的错误}EditText ctruid=findViewById(R.id.TextViewuid);String newuidstr=ctruid.getText().toString().trim();if (newuidstr.length()!=8){tv.setText("UID为8位16进制数,请输入正确的UID号!");return;}byte edc=0;for (int i=0;i<4;i++){myblockdata[i]=(byte) Integer.parseInt(newuidstr.substring(i * 2, i * 2 + 2), 16);//只有用Integer.parseInt才能杜绝大于128时的错误edc=(byte)(edc ^ myblockdata[i]);   //UID校验字}myblockdata[4]=edc;EditText ctrblock0=findViewById(R.id.Edittextblock0);  //如果第0块显示有数据,将第0块的第5字节以后的数据也写入String blockstr0=ctrblock0.getText().toString().trim();String[] strArr= blockstr0.split("\\ ");             /*分割接收到的数据后再分析、处理、返回指令 */if (strArr.length==16){for(int p=5;p<16;p++) {myblockdata[p]=(byte)(Integer.parseInt(strArr[p],16));}}status=ourmifare.piccwriteserial(myctrlword,mypiccserial,(byte)0,authmode,mypicckey,myblockdata);if(status == 0){status = ourmifare.piccrequest(mypiccserial);if(status == 0){ourmifare.pcdbeep(38);String serialnumber = "";for (int i = 0; i < 4; i++) {String bytestr = "00" + Integer.toHexString(mypiccserial[i] & 0xff);serialnumber = serialnumber + bytestr.substring(bytestr.length() - 2, bytestr.length());}serialnumber=serialnumber.toUpperCase();ctruid.setText(serialnumber);long cardhao;cardhao = mypiccserial[3] & 0xff;cardhao *= 256;cardhao += mypiccserial[2] & 0xff;cardhao *= 256;cardhao += mypiccserial[1] & 0xff;cardhao *= 256;cardhao += mypiccserial[0] & 0xff;String strls1 = "000000000"+Long.toString(cardhao);//0305887634  123B7992strls1=strls1.substring(strls1.length()-10,strls1.length());ctr8h10d.setText(strls1);String strls = "写UID卡号成功!16进制卡号为:" +serialnumber+"\n转8H10D卡号:"+ strls1;tv.setText(strls);}else{PrintErrInf(status);}}else{PrintErrInf(status);}}public void writekeytoe2(View view){byte status;//存放返回值byte myareano;//区号byte authmode;//密码类型,用A密码或B密码byte[] mypicckey = new byte[6];//密码tv.setText("");Spinner spls= findViewById(R.id.SpinnerArea);myareano = (byte)(spls.getSelectedItemId());          //指定区号String strl="";Spinner crtauthabkey=findViewById(R.id.SpinnerSelABKey);authmode =(byte)crtauthabkey.getSelectedItemId();    //大于0表示用A密码认证,推荐用A密码认证if(authmode==0){strl="B认证密钥";}else {strl="A认证密钥";}EditText ctrauthkey=findViewById(R.id.EdittextAuthkey); //认证密钥String authkeystr=ctrauthkey.getText().toString().trim();if (authkeystr.length()!=12){tv.setText("认证密钥为12位16进制数,请输入正确的卡认证密钥!");return;}for (int i=0;i<6;i++){mypicckey[i]=(byte) Integer.parseInt(authkeystr.substring(i * 2, i * 2 + 2), 16);//只有用Integer.parseInt才能杜绝大于128时的错误}status = ourmifare.pcdwritekeytoe2(myareano,authmode,mypicckey);if(status == 0) {ourmifare.pcdbeep(38);tv.setText("第"+Integer.toString(myareano)+"区内部"+strl+"写入到发卡器芯片内成功!");}else{PrintErrInf(status);}}//轻松读卡,返回4字节卡号及48字节扇区数据public void piccreadex(View view){byte status;//存放返回值byte myareano;//区号byte authmode;//密码类型,用A密码或B密码byte myctrlword;//控制字byte[] mypiccserial = new byte[4];//卡序列号byte[] mypicckey = new byte[6];//密码byte[] mypiccdata = new byte[300];//卡数据缓冲byte[] myblockdata=new byte[16];//第三块数据EditText ctruid=findViewById(R.id.TextViewuid);ctruid.setText("");TextView ctr8h10d=findViewById(R.id.TextViewlabel8h10d);ctr8h10d.setText("");tv.setText("");myctrlword = BLOCK0_EN + BLOCK1_EN + BLOCK2_EN;        //控制字指定,控制字的含义请查看本公司网站提供的动态库说明Spinner ctrauthmode=findViewById(R.id.SpinnerInOutKey);if (ctrauthmode.getSelectedItemId()==1){myctrlword=(byte)(myctrlword + EXTERNKEY);        //选用外部密钥认证}Spinner spls= findViewById(R.id.SpinnerArea);myareano = (byte)(spls.getSelectedItemId());          //指定区号Spinner crtauthabkey=findViewById(R.id.SpinnerSelABKey);authmode =(byte)crtauthabkey.getSelectedItemId();    //大于0表示用A密码认证,推荐用A密码认证EditText ctrauthkey=findViewById(R.id.EdittextAuthkey); //认证密钥String authkeystr=ctrauthkey.getText().toString().trim();if (authkeystr.length()!=12){tv.setText("认证密钥为12位16进制数,请输入正确的卡认证密钥!");return;}for (int i=0;i<6;i++){mypicckey[i]=(byte) Integer.parseInt(authkeystr.substring(i * 2, i * 2 + 2), 16);//只有用Integer.parseInt才能杜绝大于128时的错误}//status = ourmifare.piccreadexfm11rf32(myctrlword,mypiccserial,myareano,authmode,mypicckey,mypiccdata);status =ourmifare.piccreadex(myctrlword,mypiccserial,myareano,authmode,mypicckey,mypiccdata);if(status == 0){ourmifare.pcdbeep(38);String serialnumber = "";for (int i = 0; i < 4; i++) {String bytestr = "00" + Integer.toHexString(mypiccserial[i] & 0xff);serialnumber = serialnumber + bytestr.substring(bytestr.length() - 2, bytestr.length());}serialnumber=serialnumber.toUpperCase();ctruid.setText(serialnumber);long cardhao;cardhao = mypiccserial[3] & 0xff;cardhao *= 256;cardhao += mypiccserial[2] & 0xff;cardhao *= 256;cardhao += mypiccserial[1] & 0xff;cardhao *= 256;cardhao += mypiccserial[0] & 0xff;String card8h10d = "000000000"+Long.toString(cardhao);//0305887634  123B7992card8h10d=card8h10d.substring(card8h10d.length()-10,card8h10d.length());ctr8h10d.setText(card8h10d);String strls = "读取扇区数据成功!16进制卡号为:" +serialnumber+"\n转8H10D卡号:"+ card8h10d;tv.setText(strls);strls= "";String strls1="";for(int i = 0;i < 16;i++){strls1 = "00"+Integer.toHexString(mypiccdata[i] & 0xFF);strls = strls + strls1.substring(strls1.length()-2) +" ";}EditText ctrblock0=findViewById(R.id.Edittextblock0);ctrblock0.setText(strls.toUpperCase());strls= "";for(int i = 16;i < 32;i++){strls1 = "00"+Integer.toHexString(mypiccdata[i] & 0xFF);strls = strls + strls1.substring(strls1.length()-2) +" ";}EditText ctrblock1=findViewById(R.id.Edittextblock1);ctrblock1.setText(strls.toUpperCase());strls= "";for(int i = 32;i < 48;i++){strls1 = "00"+Integer.toHexString(mypiccdata[i] & 0xFF);strls = strls + strls1.substring(strls1.length()-2) +" ";}EditText ctrblock2=findViewById(R.id.Edittextblock2);ctrblock2.setText(strls.toUpperCase());if (myareano<32) {   //M1 S50 前面32扇区读每扇区最后一块密钥块status = ourmifare.piccread((byte) (myareano * 4 + 3), myblockdata);       //读块第三块密钥块if (status == 0) {strls = "";for (int i = 0; i < 16; i++) {strls1 = "00" + Integer.toHexString(myblockdata[i] & 0xFF);strls = strls + strls1.substring(strls1.length() - 2) + " ";}EditText ctrblock3 = findViewById(R.id.Edittextblock3);ctrblock3.setText(strls.toUpperCase());} else {tv.setText("读取扇区数据成功!16进制卡号为:" + serialnumber + "\n读第3块时错误:" + Integer.toString(status));}}else{  //S70卡读33扇区后数据int p=48;for (int i=3;i<16;i++){status = ourmifare.piccread((byte) (128 + ((myareano - 32) * 16) + i), myblockdata);if (status == 0) {for(int j=0;j<16;j++){mypiccdata[p]=myblockdata[j];p++;}}else{tv.setText("读第" + Integer.toString(myareano * 4 + i) + "块时返回错误代码:" + Integer.toString(status));break;}}strls = "读取S70卡扇区数据成功!16进制卡号为:" +serialnumber+"\n转8H10D卡号:"+ card8h10d+",扇区内数据:\n";String carddatastr="";for (int pi=0;pi<256;pi++){strls1 = "00" + Integer.toHexString(mypiccdata[pi] & 0xFF);carddatastr = carddatastr + strls1.substring(strls1.length() - 2) + " ";}tv.setText(strls+carddatastr.toUpperCase());}}else{PrintErrInf(status);}mypiccserial = null;mypicckey = null;mypiccdata = null;}//轻松读卡,返回4字节卡号及48字节扇区数据public void piccreadexevery200ms(View view){if(((Button)findViewById(R.id.btnPiccreadex1)).getText() =="启动连续每隔0.2秒读一次卡"){((Button)findViewById(R.id.btnPiccreadex1)).setText("停止连续读卡");timer = new Timer();task = new TimerTask() {@Overridepublic void run() {if(iscontinue) {iscontinue = false;piccreadex(view);iscontinue = true;proctimes++;tv.setText(tv.getText() + "\n执行次数:" + Long.toString(proctimes));}}};timer.schedule(task, 0,200);}else{((Button)findViewById(R.id.btnPiccreadex1)).setText("启动连续每隔0.2秒读一次卡");if(timer != null) {timer.cancel();proctimes = 0;}timer = null;}}//轻松写卡:8区,密码12个F,数据1-48,返回4字节卡号"public void piccwriteex(View view){byte status;//存放返回值byte myareano;//区号byte authmode;//密码类型,用A密码或B密码byte myctrlword;//控制字byte[] mypiccserial = new byte[4];//卡序列号byte[] mypicckey = new byte[6];//密码byte[] mypiccdata = new byte[48];//卡数据缓冲EditText ctruid=findViewById(R.id.TextViewuid);ctruid.setText("");TextView ctr8h10d=findViewById(R.id.TextViewlabel8h10d);ctr8h10d.setText("");tv.setText("");myctrlword = BLOCK0_EN + BLOCK1_EN + BLOCK2_EN;        //控制字指定,控制字的含义请查看本公司网站提供的动态库说明Spinner ctrauthmode=findViewById(R.id.SpinnerInOutKey);if (ctrauthmode.getSelectedItemId()==1){myctrlword=(byte)(myctrlword + EXTERNKEY);        //选用外部密钥认证}Spinner spls= findViewById(R.id.SpinnerArea);myareano = (byte)(spls.getSelectedItemId());          //指定区号Spinner crtauthabkey=findViewById(R.id.SpinnerSelABKey);authmode =(byte)crtauthabkey.getSelectedItemId();    //大于0表示用A密码认证,推荐用A密码认证EditText ctrauthkey=findViewById(R.id.EdittextAuthkey); //认证密钥String authkeystr=ctrauthkey.getText().toString().trim();if (authkeystr.length()!=12){tv.setText("认证密钥为12位16进制数,请输入正确的卡认证密钥!");return;}for (int i=0;i<6;i++){mypicckey[i]=(byte) Integer.parseInt(authkeystr.substring(i * 2, i * 2 + 2), 16);//只有用Integer.parseInt才能杜绝大于128时的错误}String[] strArr;EditText ctrblock0=findViewById(R.id.Edittextblock0);String blockstr0=ctrblock0.getText().toString().trim();strArr= blockstr0.split("\\ ");             /*分割接收到的数据后再分析、处理、返回指令 */if (strArr.length!=16){tv.setText("第0块写入数据不足,请输入32位16进制写入数据!");return;}EditText ctrblock1=findViewById(R.id.Edittextblock1);String blockstr1=ctrblock1.getText().toString().trim();strArr= blockstr1.split("\\ ");             /*分割接收到的数据后再分析、处理、返回指令 */if (strArr.length!=16){tv.setText("第1块写入数据不足,请输入32位16进制写入数据!");return;}EditText ctrblock2=findViewById(R.id.Edittextblock2);String blockstr2=ctrblock2.getText().toString().trim();strArr= blockstr2.split("\\ ");             /*分割接收到的数据后再分析、处理、返回指令 */if (strArr.length!=16){tv.setText("第2块写入数据不足,请输入32位16进制写入数据!");return;}String writedatastr=blockstr0+" "+blockstr1+" "+blockstr2;strArr= writedatastr.split("\\ ");for(int p=0;p<strArr.length;p++) {mypiccdata[p]=(byte)(Integer.parseInt(strArr[p],16));}status = ourmifare.piccwriteexfm11rf32(myctrlword,mypiccserial,myareano,authmode,mypicckey,mypiccdata);if(status == 0){ourmifare.pcdbeep(38);String serialnumber = "";for (int i = 0; i < 4; i++) {String bytestr = "00" + Integer.toHexString(mypiccserial[i] & 0xff);serialnumber = serialnumber + bytestr.substring(bytestr.length() - 2, bytestr.length());}serialnumber=serialnumber.toUpperCase();ctruid.setText(serialnumber);long cardhao;cardhao = mypiccserial[3] & 0xff;cardhao *= 256;cardhao += mypiccserial[2] & 0xff;cardhao *= 256;cardhao += mypiccserial[1] & 0xff;cardhao *= 256;cardhao += mypiccserial[0] & 0xff;String strls1 = "000000000"+Long.toString(cardhao);//0305887634  123B7992strls1=strls1.substring(strls1.length()-10,strls1.length());ctr8h10d.setText(strls1);String strls = "扇区写入数据成功!16进制卡号为:" +serialnumber+"\n转8H10D卡号:"+ strls1;tv.setText(strls);}else{PrintErrInf(status);}}//改单区密码:8区,密码12个F,改成12个F,返回4字节卡号"public void piccchangesinglekeyex(View view){byte status;//存放返回值byte myareano;//区号byte authmode;//密码类型,用A密码或B密码byte myctrlword=0;//控制字byte[] mypiccserial = new byte[4];//卡序列号byte[] mypicckeyold = new byte[6];//密码byte[] mypicckeynew = new byte[17];//卡数据缓冲EditText ctruid=findViewById(R.id.TextViewuid);ctruid.setText("");TextView ctr8h10d=findViewById(R.id.TextViewlabel8h10d);ctr8h10d.setText("");tv.setText("");Spinner ctrauthmode=findViewById(R.id.SpinnerInOutKey);if (ctrauthmode.getSelectedItemId()==1){myctrlword=(byte)(myctrlword + EXTERNKEY);        //选用外部密钥认证}Spinner spls= findViewById(R.id.SpinnerArea);myareano = (byte)(spls.getSelectedItemId());          //指定区号Spinner crtauthabkey=findViewById(R.id.SpinnerSelABKey);authmode =(byte)crtauthabkey.getSelectedItemId();    //大于0表示用A密码认证,推荐用A密码认证EditText ctrauthkey=findViewById(R.id.EdittextAuthkey); //认证密钥String authkeystr=ctrauthkey.getText().toString().trim();if (authkeystr.length()!=12){tv.setText("认证密钥为12位16进制数,请输入正确的卡认证密钥!");return;}for (int i=0;i<6;i++){mypicckeyold[i]=(byte) Integer.parseInt(authkeystr.substring(i * 2, i * 2 + 2), 16);//只有用Integer.parseInt才能杜绝大于128时的错误}//新A密钥EditText ctrkeya=findViewById(R.id.Edittextnewkeya);String newkeyastr=ctrkeya.getText().toString().trim();if (newkeyastr.length()!=12){tv.setText("新A密钥输入错误,请输入12位16进制新A密钥!");return;}for (int i=0;i<6;i++){mypicckeynew[i]=(byte)Integer.parseInt(newkeyastr.substring(i * 2, i * 2 + 2), 16);//只有用Integer.parseInt才能杜绝大于128时的错误}//新控制位EditText ctrnewctr=findViewById(R.id.Edittextnewctr);String newctrstr=ctrnewctr.getText().toString().trim();if (newctrstr.length()!=8){tv.setText("新控制字输入错误,请输入8位16进制控制字!");return;}for (int i=0;i<4;i++){mypicckeynew[6+i]=(byte)Integer.parseInt(newctrstr.substring(i * 2, i * 2 + 2), 16);//只有用Integer.parseInt才能杜绝大于128时的错误}//新B密钥EditText ctrkeyb=findViewById(R.id.Edittextnewkeyb);String newkeybstr=ctrkeyb.getText().toString().trim();if (newkeyastr.length()!=12){tv.setText("新B密钥输入错误,请输入12位16进制新B密钥!");return;}for (int i=0;i<6;i++){mypicckeynew[10+i]=(byte)Integer.parseInt(newkeybstr.substring(i * 2, i * 2 + 2), 16);//只有用Integer.parseInt才能杜绝大于128时的错误}//选项之Spinner ctrnewkey=findViewById(R.id.SpinnerchangeKey);byte selechangkey=(byte)ctrnewkey.getSelectedItemId();switch (selechangkey){case 0:mypicckeynew[16] = (byte)0x00;//为0表示只改A官密码break;case 1:mypicckeynew[16] = (byte)0x01;//为1表示改A密码同时也改B密码break;case 2:mypicckeynew[16] = (byte)0x03;//为3表示改AB密码及访问位,警示:不要轻易改访问位,FF078069 为出可使用7F 07 88 69控制break;}status = ourmifare.piccchangesinglekeyexfm11rf32(myctrlword,mypiccserial,myareano,authmode,mypicckeyold,mypicckeynew);if(status == 0){ourmifare.pcdbeep(38);String serialnumber = "";for (int i = 0; i < 4; i++) {String bytestr = "00" + Integer.toHexString(mypiccserial[i] & 0xff);serialnumber = serialnumber + bytestr.substring(bytestr.length() - 2, bytestr.length());}serialnumber=serialnumber.toUpperCase();ctruid.setText(serialnumber);long cardhao;cardhao = mypiccserial[3] & 0xff;cardhao *= 256;cardhao += mypiccserial[2] & 0xff;cardhao *= 256;cardhao += mypiccserial[1] & 0xff;cardhao *= 256;cardhao += mypiccserial[0] & 0xff;String strls1 = "000000000"+Long.toString(cardhao);//0305887634  123B7992strls1=strls1.substring(strls1.length()-10,strls1.length());ctr8h10d.setText(strls1);String strls = "更改卡片密钥成功!16进制卡号为:" +serialnumber+"\n转8H10D卡号:"+ strls1;tv.setText(strls);}else{PrintErrInf(status);}}public void piccreadsfz2(View view){byte status;//存放返回值byte[] mypiccserial = new byte[8];long cardhao;String strls;tv.setText("");status = ourmifare.sfzrequest(mypiccserial);if(status == 0){ourmifare.pcdbeep(38);String serialnumber = "";for (int i = 0; i < 8; i++) {String bytestr = "00" + Integer.toHexString(mypiccserial[i] & 0xff);serialnumber = serialnumber + bytestr.substring(bytestr.length() - 2, bytestr.length());}serialnumber=serialnumber.toUpperCase();cardhao = mypiccserial[4] & 0xff;cardhao *= 256;cardhao += mypiccserial[5] & 0xff;cardhao *= 256;cardhao += mypiccserial[6] & 0xff;cardhao *= 256;cardhao += mypiccserial[7] & 0xff;String strls1 = "000000000"+Long.toString(cardhao);//0305887634  123B7992strls1=strls1.substring(strls1.length()-10,strls1.length());strls = "读取二代证UID成功!16进制卡号为:" +serialnumber+"\n转8H10D卡号:"+ strls1;tv.setText(strls);}else{PrintErrInf(status);}}public void piccreadhidiclasscsn(View view){byte status;//存放返回值byte[] mypiccserial = new byte[8];long cardhao;String strls;tv.setText("");status = ourmifare.iso15693iclassreadcsn(mypiccserial);if(status == 0){ourmifare.pcdbeep(38);String serialnumber = "";for (int i = 0; i < 8; i++) {String bytestr = "00" + Integer.toHexString(mypiccserial[i] & 0xff);serialnumber = serialnumber + bytestr.substring(bytestr.length() - 2, bytestr.length());}serialnumber=serialnumber.toUpperCase();cardhao = mypiccserial[4] & 0xff;cardhao *= 256;cardhao += mypiccserial[5] & 0xff;cardhao *= 256;cardhao += mypiccserial[6] & 0xff;cardhao *= 256;cardhao += mypiccserial[7] & 0xff;String strls1 = "000000000"+Long.toString(cardhao);//0305887634  123B7992strls1=strls1.substring(strls1.length()-10,strls1.length());strls = "读取HID iClass CSN成功!16进制CSN为:" +serialnumber+"\n转8H10D卡号:"+ strls1;tv.setText(strls);}else{PrintErrInf(status);}}public void PrintErrInf(byte errcode) {String dispstr;switch(errcode){case 1:dispstr="错误代码:1,0~2块都没读出来,可能刷卡太块。但卡序列号已被读出来!";break;case 2:dispstr="错误代码:2,第0块已被读出,但1~2块读取失败。卡序列号已被读出来!";break;case 3:dispstr="错误代码:3,第0、1块已被读出,但2块读取失败。卡序列号已被读出来!";break;case 8:dispstr="错误代码:8,未寻到卡,请重新拿开卡后再放到感应区!";break;case 9:dispstr="错误代码:9,有多张卡在感应区,寻卡过程中防冲突失败,读序列吗错误!";break;case 10:dispstr="错误代码:10,该卡可能已被休眠,无法选中卡片!";break;case 11:dispstr="错误代码:11,密码装载失败!";break;case 12:dispstr="错误代码:12,卡片密码认证失败!";break;case 13:dispstr="错误代码:13,读本块失败,原因是刷卡太快或本块所对应的区还没通过密码认证!";break;case 14:dispstr="错误代码:14,写本块失败,原因是刷卡太快或本块所对应的区还没通过密码认证!";break;case 21:dispstr="错误代码:21,没有动态库!";break;case 22:dispstr="错误代码:22,动态库或驱动程序异常!";break;case 23:dispstr="错误代码:23,发卡器未连接!";break;case 24:dispstr="错误代码:24,操作超时,一般是动态库没有反映!";break;case 25:dispstr="错误代码:25,发送字数不够!";break;case 26:dispstr="错误代码:26,发送的CRC错!";break;case 27:dispstr="错误代码:27,接收的字数不够!";break;case 28:dispstr="错误代码:28,接收的CRC错!";break;default:dispstr="未知错误,错误代码:"+Integer.toString(errcode);break;}tv.setText(dispstr);}
}

 

相关文章:

安卓Android Studio读写MifareOne M1 IC卡源码

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?id615391857885&spma1z10.5-c-s.w4002-21818769070.11.3d2f789eOUPJBK <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xm…...

一二三应用开发平台文件处理设计与实现系列之5——MinIO技术预研

背景 上篇介绍了文件读写框架设计与实现&#xff0c;同时顺便说明了本地磁盘存储模式的实现模式。 今天来说下基于文件读写框架&#xff0c;如何集成对象存储组件minio&#xff0c;集成之前&#xff0c;需要对minio进行必要的了解&#xff0c;本篇是minio的技术预研。 minio简…...

Native.js是什么

Native.js 是一个开源项目&#xff0c;旨在通过 JavaScript 调用原生 Android API。它的目标是让 JavaScript 开发者能够使用 Android 原生 API&#xff0c;从而在不编写原生代码的情况下构建 Android 应用。 使用 Native.js&#xff0c;开发者可以使用 JavaScript 调用 Andro…...

Vant-ui图片懒加载

核心代码 在你的全局顶部引入和初始化 Vue.use(vant.Lazyload, {loading: /StaticFile/img/jiazai.jpg,error: /StaticFile/img/jiazai.jpg,lazyComponent: false, });//图片懒加载 <img v-lazy"https://img-blog.csdnimg.cn/direct/3d2c8a7e2c0040488a8128c3e381d58…...

创建EasyCodeMybatisCodeHelperPro模板文件用于将数据库表生成前端json文件

在intellij idea中&#xff0c;通过插件EasyCodeMybatisCodeHelperPro&#xff0c;从现有的模板文件中选择一个复制粘贴&#xff0c;然后稍为修改&#xff0c;即可得到一个合适的模板文件。 现在的前端&#xff0c;越来越像后端。TypeScript替代了JavaScript&#xff0c;引入了…...

华为端口安全常用3种方法配置案例

安全动态mac地址学习功能 [Huawei]int g0/0/01 interface GigabitEthernet0/0/1 port-security enable //开启安全 port-security max-mac-num 2 //最多为2个mac地址学习 port-security protect-action restrict //丢包带警告 port-security aging-time 1 //mac地址的老化时间…...

RH850P1X芯片学习笔记-Flash Memory

文章目录 FeaturesClock Supply Block DiagramFlash SizeMemory ConfigurationRegistersRegister Base AddressList of RegistersRegister Reset Condition 与Flash Memory相关的操作模式Functional OverviewOption BytesOPBT0 — Option Byte 0OPBT1 — Option Byte 1OPBT2 —…...

利用XSS漏洞打cookie

目录 1、为什么要打cookie&#xff1f; 2、怎样利用XSS来打cookie&#xff1f; 3、利用Bluelotus_xssReceiver平台来打cookie 4、利用beef-xss平台来打cookie 上一篇给大家介绍了xss漏洞的基础知识&#xff0c;在本篇章将会介绍和演示一下利用xss漏洞打cookie的演示&#x…...

用java写个redis工具类

下面是一个简单的Redis工具类的示例&#xff0c;使用Java语言编写&#xff1a; import redis.clients.jedis.Jedis;public class RedisUtils {private static Jedis jedis;public static void connect(String host, int port) {jedis new Jedis(host, port);}public static v…...

实现防抖函数

// 防抖就是&#xff0c;事件触发 delay 秒后再执行&#xff0c;如果有重新的触发&#xff0c;重新计时 function debounce(func, delay) {if(typeof func ! function) {return}let timer 0return function () {if (timer) {clearTimeout(timer)timer null}timer setTimeout…...

MetaGPT task1学习

基础知识学习了解&#xff1a; 安装环境&#xff1a; 获取MetaGPT 使用pip获取MetaGPT pip install -i https://pypi.tuna.tsinghua.edu.cn/simple metagpt0.5.2 配置MetaGPT 完成MetaGPT后&#xff0c;我们还需要完成一些配置才能开始使用这个强力的框架&#xff0c;包括配…...

关于量子计算机的设想

从CPU架构说起 CISCRISCNISCCCSC CISC是复杂指令集计算机&#xff0c;以x86为代表&#xff1b; RISC是精简指令集计算机&#xff0c;以ARM为代表&#xff1b; NISC是无指令集计算机&#xff0c;CCSC是核-电路分离计算机&#xff0c;这两个是本文要讨论的内容。 如果没有指令…...

序列模型(4)—— Scaling Laws

本文介绍 LLM 训练过程中重要的 Scaling Laws&#xff0c;这是一个经验规律&#xff0c;指出了固定训练成本&#xff08;总计算量FLOPs&#xff09; C C C 时&#xff0c;如何调配模型规模&#xff08;参数量&#xff09; N N N 和训练 Token 数据量 D D D&#xff0c;才能实现…...

【软件测试学习笔记1】测试基础

1.软件测试的定义 软件的定义&#xff1a;控制计算机硬件工作的工具 软件的基本组成&#xff1a;页面客户端&#xff0c;代码服务器&#xff0c;数据服务器 软件产生的过程&#xff1a;需求产生&#xff08;产品经理&#xff09;&#xff0c;需求文档&#xff0c;设计效果图…...

pytorch详细探索各种cnn卷积神经网络

目录 torch.nn.functional子模块详解 conv1d 用法和用途 使用技巧 适用领域 参数 注意事项 示例代码 conv2d 用法和用途 使用技巧 适用领域 参数 注意事项 示例代码 conv3d 用法和用途 使用技巧 适用领域 参数 注意事项 示例代码 conv_transpose1d 用法…...

OpenCV——八邻域断点检测

目录 一、理论基础1、八邻域2、断点检测 二、代码实现三、结果展示四、参考链接 OpenCV——八邻域断点检测由CSDN点云侠原创&#xff0c;爬虫自重。如果你不是在点云侠的博客中看到该文章&#xff0c;那么此处便是不要脸的爬虫。 一、理论基础 1、八邻域 图1 八邻域示意图 图…...

leetcode238:除自身以外数组的乘积

文章目录 1.使用除法&#xff08;违背题意&#xff09;2.左右乘积列表3.空间复杂度为O(1)的方法 在leetcode上刷到了这一题&#xff0c;一开始并没有想到好的解题思路&#xff0c;写篇博客再来梳理一下吧。 题目要求&#xff1a; 不使用除法在O(n)时间复杂度内 1.使用除法&am…...

VTK开发调试环境下载(VTK开发环境一步到位直接开发,无需自己配置编译 VS2017+Qt5.12.10+VTK)

一、无与伦比的优势 直接下载代码就可以调试的VTK代码仓库。 二、资源制作原理 这个资源根据VTK源码 编译出动态库文件 pdb lib dll 文件&#xff08; x64 debug &#xff09; 并将这两者同时放在一个代码仓库里&#xff0c;下载就能用。 三、使用方法&#xff08;vtk-so…...

【JAVA】在 Queue 中 poll()和 remove()有什么区别

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;JAVA ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 poll() 方法&#xff1a; remove() 方法&#xff1a; 区别总结&#xff1a; 结语 我的其他博客 前言 在Java的Queue接口中&…...

常用Java代码-Java中的Optional类和null安全编程

在Java中&#xff0c;Optional 是一个可以为null的容器对象。如果值存在则isPresent()方法返回true。调用get()方法会返回值&#xff0c;如果值为null则抛出NullPointerException。以下是一个详细的代码详解。 在之前的Java版本中&#xff0c;程序员需要手动检查是否为null&am…...

android.os.NetworkOnMainThreadException

问题 android.os.NetworkOnMainThreadException详细问题 核心代码如下&#xff1a; import android.os.Bundle;import androidx.appcompat.app.AppCompatActivity;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ja…...

Java生成四位数随机验证码

引言&#xff1a; 我们生活中登录的时候都要输入验证码&#xff0c;这些验证码是为了增加注册或者登录难度&#xff0c;减少被人用脚本疯狂登录注册导致的一系列危害&#xff0c;减少数据库的一些压力。 毕竟那些用脚本生成的账号都是垃圾账号 本次实践&#xff1a;生成这样的…...

编程探秘:Python深渊之旅-----数据可视化(八)

客户提出了对数据报告和图表的具体要求&#xff0c;这使得团队需要快速掌握数据可视化的技巧。派超决定深入了解 Python 中的数据可视化工具。 派超&#xff08;兴奋地&#xff09;&#xff1a;我们有机会做些真正酷炫的数据报告了&#xff01;我听说 Python 有很棒的图表库。…...

上海亚商投顾:创业板指冲高回落 光伏、航运股逆势走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指1月12日冲高回落&#xff0c;创业板指午后跌近1%。北证50指数跌超6%&#xff0c;倍益康、华信永道、众诚科…...

Python3 中常用字符串函数介绍

介绍 Python 中有几个与 字符串数据类型相关的内置函数。这些函数让我们能够轻松修改和操作字符串。我们可以将函数视为在代码元素上执行的操作。内置函数是在 Python 编程语言中定义的&#xff0c;并且可以随时供我们使用的函数。 在本教程中&#xff0c;我们将介绍在 Pytho…...

Python - 深夜数据结构与算法之 AVL 树 红黑树

目录 一.引言 二.高级树的简介 1.树 2.二叉树 3.二叉搜索树 4.平衡二叉树 三.AVL 树 ◆ 插入节点 ◆ 左旋 ◆ 右旋 ◆ 左右旋 ◆ 右左旋 ◆ 一般形式 ◆ 实际操作 ◆ 总结 四.红黑树 ◆ 概念 ◆ 示例 ◆ 对比 五.总结 一.引言 前面我们介绍了二叉树、二叉…...

Zookeeper使用详解

介绍 ZooKeeper是一个分布式的&#xff0c;开放源码的分布式应用程序协调服务&#xff0c;是Google的Chubby一个开源的实现&#xff0c;是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件&#xff0c;提供的功能包括&#xff1a;配置维护、域名服务、分布…...

C#属性(Property)

文章目录 一、C#属性&#xff08;Property&#xff09;&#xff1f;二、属性的用法总结 一、C#属性&#xff08;Property&#xff09;&#xff1f; C#属性&#xff08;Property&#xff09;是一种访问器&#xff08;accessor&#xff09;&#xff0c;用于封装一个类的字段&…...

在docker中搭建部署clickhouse

因需要给网关日志拉取并存储供数据分析师分析&#xff0c;由于几十个项目的网关请求数量很大&#xff0c;放在mysql不合适&#xff0c;MongoDB不适合分析&#xff0c;于是准备存放在clickhouse&#xff0c;clickhouse对于读写支持也比较友好&#xff0c;说干就干 1、在服务器中…...

第九部分 使用函数 (三)

目录 一、文件名操作函数 1、dir 2、notdir 3、suffix 4、basename 5、addsuffix 6、addprefix 7、join 一、文件名操作函数 下面我们要介绍的函数主要是处理文件名的。每个函数的参数字符串都会被当做一个或是 一系列的文件名来对待。 1、dir $(dir <names..>…...