導航:首頁 > 汽車產業 > 工業設備軟體驗證怎麼做

工業設備軟體驗證怎麼做

發布時間:2022-09-19 19:10:04

⑴ 請問怎麼給軟體加註冊驗證

要實現軟體注冊功能,首先需要知道實現注冊機制要涉及到的幾個問題:1、如何加入注冊檢測,判斷軟體是否注冊;2、如何生成注冊碼,如何保證一個用戶名只生成與之唯一對應的注冊碼;3、在軟體不注冊情況下,如何限制軟體功能的局限性;4、對已經負費使用用戶而言,不應造成使用不便。

首先,應該有一個生成注冊碼的演算法,以下是我簡單的一個生成15位注冊碼的演算法:
//該函數返回一個CSTRING類型的15位注冊碼,入口參數為用戶名
CString GetRegPasswd(CString &DirName)
{
//將用戶名換算成15位注冊碼
long Num1,Num2,Num3;

char sn[16]={0};
CString p;
int i,len;

Num1=0;
Num2=0;
Num3=0;

len=int(strlen(DirName));
if(len!=0)
{
for( i=1;i<=len;i++)
{
//第一步演算法
Num1=(long(Num1+(int(DirName[i-1])*i*i)*(i*sqrt(DirName[i-1])+1)))%100000;
//第二步演算法
Num2=(Num2*i+(long(pow((int)DirName[i-1],2)*i)))%100000;
//第三步演算法
Num3=(Num2+(long)sqrt(Num1))%100000;
}
//以下把三個演算法結果分別生成5個字元,共有15個
for(i=0;i<5;i++)
sn[i]=(int)(Num1+31+i*i*i)%128;
for(i=5;i<10;i++)
sn[i]=(int)(Num2+31+i*i*i)%128;
for(i=10;i<15;i++)
sn[i]=(int)(Num3+31+i*i*i)%128;
sn[15]=0;
//以下循環把所有生成的字元轉換為0---9,A---Z,a----z
for(i=0;i<15;i++)
{
while((sn[i]<'0' || sn[i]>'9') && (sn[i]<'A' || sn[i]>'Z') &&(sn[i]<'a' || sn[i]>'z') )
{
sn[i]=(sn[i]+31+7*i)%128;
}
}
//賦值給一個CSTRING變數,用做函數返回值
p.Format("%s",sn);
}
return p;
}
//檢查軟體是否注冊的函數

BOOL GetRegFlag(void)
{
HKEY hKey = NULL;
BYTE i;

CString str;
str.LoadString(IDS_REG_KEY);// IDS_REG_KEY為在注冊表中的子目錄字元串

if (RegCreateKey(HKEY_CURRENT_USER, str, &hKey) != ERROR_SUCCESS) return false;

DWORD cbA;
cbA=sizeof(int);
if( RegQueryValueEx(hKey, "SzMima",NULL,NULL, &i,&cbA) != ERROR_SUCCESS)
return false;

BYTE j=i;
if(j==0)//0代表軟體已經注冊,可以正常使用
{
RegCloseKey(hKey);
return true;
}
else
{
RegCloseKey(hKey);
return false;
}

return false;
};
//設置軟體已經注冊標志的函數

BOOL SetRegFlag(void)
{
HKEY hKey = NULL;
BYTE i;

CString str;
str.LoadString(IDS_REG_KEY);// IDS_REG_KEY為在注冊表中的子目錄字元串

if (RegCreateKey(HKEY_CURRENT_USER, str, &hKey) != ERROR_SUCCESS) return false;

BYTE j=0;//0代表已經注冊
if(RegSetValueEx(hKey, "SzMima", 0, REG_BINARY, &j,4) != ERROR_SUCCESS)
{
AfxMessageBox("設置注冊表數據失敗!");
return FALSE;
}
return false;
};
以上三個函數即可實現軟體注冊機制,只需要在程序初始化的時候加入以下幾句代碼即可
BOOL bReg= GetRegFlag ();
if(!bReg)
{
//在此加入限制功能或者拒絕是使用的代碼
}
如果用戶注冊只需要加入以下代碼即可
//這是我的程序中的一個注冊界面,輸入用戶名和注冊碼提交後檢驗注冊碼是否正確的代碼
void CRegEdit::OnBnClickedOk()
{
if(!UpdateData()) return;//取得編輯框的內容,並賦值到類變數中

m_RegUser.TrimLeft();//m_RegUser是用戶名
m_RegUser.TrimRight();
if(m_RegUser.IsEmpty())
{
AfxMessageBox("用戶名不能為空,請重新輸入。");
GetDlgItem(IDC_REGUSER)->SetFocus();
return;
}
m_RegPasswd.TrimLeft();m_RegPasswd是注冊碼
m_RegPasswd.TrimRight();
if(m_RegPasswd.IsEmpty())
{
AfxMessageBox("注冊碼不能為空,請重新輸入。");
GetDlgItem(IDC_REGPASSWD)->SetFocus();
return;
}
CString Passwd;
Passwd=GetRegPasswd(m_RegUser);//調用演算法取得該用戶名的注冊碼
if(Passwd==m_RegPasswd)//與用戶輸入的注冊進行比較
{
SetRegFlag();//設置注冊標志
OnOK();
}
else
AfxMessageBox("注冊碼錯誤,請重新輸入。");
UpdateData(false);
}

RSA做軟體的注冊功能,如果密鑰設置的比較大位數的話,基本別人是無法寫出注冊機的,但是防止別人暴破你的程序又是另一回事了。
Imports System.Security.Cryptography
Imports System.Text
Imports System.IO
Imports System.Xml

Public Class FrmReg
Inherits System.Windows.Forms.Form

'Dim xmlKeys As String 'A combination of both the public and 'private keys
'Dim xmlPublicKey As String 'The public key only
''The plaintext message in a byte array
'Dim PlainTextBArray As Byte()
''The cyphertext message in a byte array
'Dim CypherTextBArray As Byte()

#Region " Windows 窗體設計器生成的代碼 "

Public Sub New()
MyBase.New()

'該調用是 Windows 窗體設計器所必需的。
InitializeComponent()

'在 InitializeComponent() 調用之後添加任何初始化

End Sub

'窗體重寫 dispose 以清理組件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub

'Windows 窗體設計器所必需的
Private components As System.ComponentModel.IContainer

'注意: 以下過程是 Windows 窗體設計器所必需的
'可以使用 Windows 窗體設計器修改此過程。
'不要使用代碼編輯器修改它。
Friend WithEvents btnReg As System.Windows.Forms.Button
Friend WithEvents btnexit As System.Windows.Forms.Button
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents txtRegCode As System.Windows.Forms.TextBox
Friend WithEvents txtRegName As System.Windows.Forms.TextBox
Friend WithEvents LinkLabel1 As System.Windows.Forms.LinkLabel
Private Sub InitializeComponent()
Me.btnReg = New System.Windows.Forms.Button
Me.btnexit = New System.Windows.Forms.Button
Me.txtRegName = New System.Windows.Forms.TextBox
Me.Label1 = New System.Windows.Forms.Label
Me.Label2 = New System.Windows.Forms.Label
Me.txtRegCode = New System.Windows.Forms.TextBox
Me.LinkLabel1 = New System.Windows.Forms.LinkLabel
Me.SuspendLayout()
'
'btnReg
'
Me.btnReg.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnReg.Location = New System.Drawing.Point(64, 192)
Me.btnReg.Name = "btnReg"
Me.btnReg.Size = New System.Drawing.Size(75, 24)
Me.btnReg.TabIndex = 0
Me.btnReg.Text = "注冊(&R)"
'
'btnexit
'
Me.btnexit.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnexit.Location = New System.Drawing.Point(168, 192)
Me.btnexit.Name = "btnexit"
Me.btnexit.Size = New System.Drawing.Size(75, 24)
Me.btnexit.TabIndex = 1
Me.btnexit.Text = "取消(&C)"
'
'txtRegName
'
Me.txtRegName.Location = New System.Drawing.Point(8, 24)
Me.txtRegName.Name = "txtRegName"
Me.txtRegName.Size = New System.Drawing.Size(296, 21)
Me.txtRegName.TabIndex = 2
Me.txtRegName.Text = ""
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(8, 0)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(48, 16)
Me.Label1.TabIndex = 3
Me.Label1.Text = "注冊名:"
'
'Label2
'
Me.Label2.Location = New System.Drawing.Point(8, 56)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(56, 16)
Me.Label2.TabIndex = 4
Me.Label2.Text = "注冊碼:"
'
'txtRegCode
'
Me.txtRegCode.Location = New System.Drawing.Point(8, 80)
Me.txtRegCode.Multiline = True
Me.txtRegCode.Name = "txtRegCode"
Me.txtRegCode.Size = New System.Drawing.Size(296, 104)
Me.txtRegCode.TabIndex = 5
Me.txtRegCode.Text = ""
'
'LinkLabel1
'
Me.LinkLabel1.Location = New System.Drawing.Point(128, 56)
Me.LinkLabel1.Name = "LinkLabel1"
Me.LinkLabel1.Size = New System.Drawing.Size(128, 16)
Me.LinkLabel1.TabIndex = 6
Me.LinkLabel1.TabStop = True
Me.LinkLabel1.Text = "http://Testbug.Net"
'
'FrmReg
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.ClientSize = New System.Drawing.Size(306, 223)
Me.Controls.Add(Me.LinkLabel1)
Me.Controls.Add(Me.txtRegCode)
Me.Controls.Add(Me.txtRegName)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.btnexit)
Me.Controls.Add(Me.btnReg)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
Me.MaximizeBox = False
Me.Name = "FrmReg"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "RSA&MD5注冊例子程序 by www.TestBug.net"
Me.TopMost = True
Me.ResumeLayout(False)

End Sub

#End Region

Private Sub btnexit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnexit.Click
Application.Exit()
End Sub

Private Sub btnReg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReg.Click
If txtRegName.Text = "" Then
MessageBox.Show("注冊名不能為空", "提示")
Return
Else
If txtRegCode.Text = "" Then
MessageBox.Show("注冊碼不能為空", "提示")
Return
Else
If txtRegCode.Text.Length <> 172 Then
MessageBox.Show("注冊碼長度不對", "提示")
Return
End If
End If
End If
Try
Dim RSA As System.Security.Cryptography.RSACryptoServiceProvider = New System.Security.Cryptography.RSACryptoServiceProvider
'公鑰
RSA.FromXmlString("xzALwAOqEcj8jWrKXyaecAhyz9W+++Faaw/=AQAB")
Dim RSADeformatter As System.Security.Cryptography.RSAPKCS1SignatureDeformatter = New System.Security.Cryptography.RSAPKCS1SignatureDeformatter(RSA)
'指定解密的時候HASH演算法為MD5
RSADeformatter.SetHashAlgorithm("MD5")
Dim Regcode As Byte() = Convert.FromBase64String(txtRegCode.Text)
Dim RegName As Byte() = (New System.Text.ASCIIEncoding).GetBytes(txtRegName.Text)
Dim dataToHash As Byte() = (New System.Text.ASCIIEncoding).GetBytes(txtRegName.Text)
Dim hash As Byte() = CType(System.Security.Cryptography.CryptoConfig.CreateFromName("MD5"), System.Security.Cryptography.HashAlgorithm).ComputeHash(dataToHash)
'驗證簽名
If RSADeformatter.VerifySignature(hash, Regcode) Then
'注冊通過的話就寫入注冊文件
Dim textWriter As XmlTextWriter = New XmlTextWriter("reg.xml", Nothing)
textWriter.WriteStartElement("RegInfo")
textWriter.WriteStartElement("RegName")
textWriter.WriteString(txtRegName.Text)
textWriter.WriteEndElement()
textWriter.WriteStartElement("RegCode")
textWriter.WriteString(txtRegCode.Text)
textWriter.WriteEndElement()
textWriter.Close()
MessageBox.Show("注冊正確,謝謝注冊本軟體,請重新啟動程序完成注冊", "提示")
Application.Exit()
Else
MessageBox.Show("錯誤的注冊碼", "提示")
End If
Catch ex As Exception
'MessageBox.Show(ex.Message())
MessageBox.Show("錯誤的注冊碼", "提示")
End Try
End Sub

Private Sub FrmReg_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
Application.Exit()
End Sub

Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
System.Diagnostics.Process.Start("http://testbug.net")
End Sub
End Class

⑵ 設備驗證怎麼做

這個問題就有些大了,就GMP方面的設備驗證來講,現在並不成熟,但是資料要是打成TXT的估計都上G了。想要了解某方面的知識,首先的做法是了解他是什麼,而不是怎麼用。認識事物的順序:who,what,how,when

⑶ 設備再驗證怎麼做

所謂再驗證,系指一項生產工藝、一個系統或者一種原材料經過驗證並在使用一個階段以後,旨在證實其「驗證狀」沒有發生漂移而進行的驗證。可分為強制性再驗證和檢定、改變性再驗證、定期再驗證三種類型。和設備相關的情況有,一年一次的HEPA檢漏。可能對產品質量造成重要影響的設備、系統的某種變更。對關鍵設備的定期再驗證等。

⑷ 我問的問題是,怎樣下載軟體或安裝某個軟體,驗證身份怎麼驗證,要填寫哪些內容,才能完成呀!

一般你下載安裝一個軟體是不需要什麼身份認證的,你直接下載對應的軟體,然後點擊安裝,按照他的安裝引導進行安裝使用即可,如果需要什麼驗證之類的,建議從哪下載的去他的官網去查看一下。

⑸ 蘋果手機怎麼驗證app 蘋果手機軟體驗證方法

1、首先,我們打開手機【設置】

2、打開【設置】以後,向下滑屏幕,打開【通用】。

3、打開【通用】之後向下滑,找到【設備管理】。

4、打開【設備管理】我們可以看多未授權的【app】點擊。

5、點擊【驗證app】。

6、最後在出現的彈框中再次點擊【驗證】即可。

⑹ 蘋果手機軟體怎麼驗證

蘋果手機軟體驗證方法:


1、首先,我們打開手機【設置】


⑺ 工業設備軟體如何做軟體驗證

買筆記本加什麼稅啊,要稅也是賣的人繳稅啊。
先看好樣機,然後他拿貨的時候,你跟著他去,等他拿出筆記本箱子時候,看看那個箱子拆過沒有。一般是你付錢之前不會讓你開箱檢查的。你就說我檢查無誤就付錢,有問題就不付。他就會讓你開箱檢查。檢查什麼呢?看機子背面的筆記本型號和樣機是不是一樣,再看看和箱子上面的型號是不是一樣。然後開機試試。一般自帶有操作系統的機子是除了操作系統不會有什麼軟體的。看看有沒有qq,暴風影音之類的娛樂軟體,有的話,你就要多個心眼。注意是不是用過的。(打開qq,上面會記錄上次登陸者的qq號,暴風影音也會記錄播放過的片子)
好了,帶愛機回家,即使你買到水貨也不用慌,把發票,保修單等都收好,15天之類,你可以退貨的。回來之後,還不放心,進下面這個網站查詢是否是正版行貨:

總之是發票,保修單要保管好。
至於你說的各個專賣店價位不一樣,正常,報價不一樣非常正常,你如果深入地還價,我想價格會接近的,你也可以說某某店子只要多少多少,看他怎麼回答。
祝你好運
辛苦打這么多字 選我吧 謝謝

⑻ 軟體測試流程是什麼

測試流程依次如下:

1、需求:閱讀需求,理解需求,與客戶、開發、架構多方交流,深入了解需求。--testing team

2、測試計劃: 根據需求估算測試所需資源(人力、設備等)、所需時間、功能點劃分、如何合理分配安排資源等。---testing leader or testing manager

3、用例設計:根據測試計劃、任務分配、功能點劃分,設計合理的測試用例。---testing leader, senior tester

4、執行測試:根據測試用例的詳細步驟,執行測試用例。--every tester(主要是初級測試人員)

5、執行結果記錄和bug記錄:對每個case記錄測試的結果,有bug的在測試管理工具中編寫bug記錄。--every tester(主要是初級測試人員)

6、defect tracking:追蹤leader分配給你追蹤的bug.直到 bug fixed。--every tester

7、測試報告:通過不斷測試、追蹤,直到被測軟體達到測試需求要求,並沒有重大bug.

8、用戶體驗、軟體發布等。

(8)工業設備軟體驗證怎麼做擴展閱讀:

流程分析:

這個流程唯一的優點,就是能快速的發現並修復問題。

這個流程中,項目經理是核心,項目經理也確實是有多年開發與項目經驗的牛人,他喜歡不定期分享上些前沿的技術。

對於測試來說,需求很不明確,測試文檔與用例也是可有可無的產物,沒有需求文檔,或非常簡陋,根據需求文檔根本無法編寫用例。

通用的測試用例,如登錄、文件上傳下載、列表翻頁、日期選擇、輸入框驗證、搜索等有一些「通用型」用例,以便在測試過程中做參考。

⑼ 安裝軟體要驗證身份怎麼驗證

qq想要安裝某某軟體需要驗證OPPO身份,但是密碼不知道了,怎麼解除?方法如下:

1、首先打開OPPO手機中的設置,點擊進入「OPPO帳號」頁面。

⑽ 軟體注冊碼驗證問題

軟體注冊都需要注冊碼,但是否生效,情況有兩種,第一種是一輸入就可以驗證了,這個驗證是軟體本身就帶有的。即這種注冊的演算法已經在軟體裡面,只要找出演算法就可以做注冊機了。(這種軟體也是相對容易被破解的)第二種是輸入注冊碼,然後要通過網路驗證。即驗證的演算法不在軟體本身,而是網路的另一邊。可以是軟體作者手裡拿著,也可以放到一個網站去。如果遇到那種在你電腦里產生機器碼,然後再把機器碼郵寄給作者,然後作者再給你驗證碼這種情況,那麼破解的唯一辦法就是抓到軟體作者,威逼利誘出演算法了。。哈哈。。

閱讀全文

與工業設備軟體驗證怎麼做相關的資料

熱點內容
汽車機油尺怎麼插 瀏覽:399
寶馬的技術亮點有哪些 瀏覽:529
維亞諾賓士電動中門怎麼關 瀏覽:879
杭州到浦江汽車要多久 瀏覽:384
寶馬x1適合什麼年齡人開 瀏覽:907
汽車可加裝的電子設備有哪些 瀏覽:68
別克汽車外拉手怎麼拆裝 瀏覽:13
28到30萬左右的寶馬車有哪些 瀏覽:555
汽車玻璃水如何防凍 瀏覽:28
賓士w221多少排量 瀏覽:186
興仁工業園區有哪些服裝 瀏覽:539
碳纖維用於汽車哪些位置 瀏覽:749
工業火鹼怎麼清除 瀏覽:751
寶馬5系車供氣裝置多少錢 瀏覽:601
寧波理工大學工業設計專業有哪些 瀏覽:445
賓士v級火花塞多久更換 瀏覽:180
五十菱發動機的汽車有哪些 瀏覽:337
我國手工業生產有哪些光輝成就 瀏覽:16
昆明到瀾滄汽車多少錢 瀏覽:799
奧迪顏值代表什麼意思 瀏覽:655