當前位置:首頁 » 密碼管理 » vbnet文件加密

vbnet文件加密

發布時間: 2022-06-15 09:41:38

⑴ 用VB.net編寫一個加密解密軟體

"採用DES演算法"這個說法不明確,首先是使用多少位的DES進行加密,通常是128位或192位,其次是,要先把主密鑰轉化成散列,才能供DES進行加密,轉化的方法是什麼沒有明確,通常是md5,所以有的銀行卡說是128位md5 3DS就是指用md5轉換主密鑰散列,用DES進行加密,但是DES本身是64位(包含校驗碼),2DES是128位,3DES是192位,但是沒有2DES的叫法,所以128位、192位統稱3DES
要完整的md5+3DS實例,需要100分以上,要不到我的空間中查找相關的文章

⑵ vb.net製作的加密程序問題

這個看你想做成什麼樣子了,其實最簡單的辦法是建立一個資料庫,加密資料庫,所有文件都存放在資料庫中,如果需要恢復文件,利用軟體將資料庫中文件重新寫出來就可以了,根本都不需要在單獨去加密,一般說來破解資料庫的密碼還是比較困難的,比自己做加密演算法方便多了。 這個辦法還可以用來實現不同的登錄可以獲得不同的許可權,比如自己登錄可以全部打開,其他的人登錄給一個通用賬戶,只能看到其中的一部分或是構造一個假象的數據信息給他,可以極大的提高數據安全性。編程實現非常方便。 建議你試一下。

⑶ 簡單VB.NET加密與解密

Private Function myEncrypt(ByVal Code As String) As String
Dim Result As String = ""

Dim CurrentChar As Char

For i As Integer = 0 To Code.Length - 1

CurrentChar = Code.Substring(i, 1)

Select Case Code.Substring(i, 1)
Case "Z"
Result &= "a"
Case "z"
Result &= "A"
Case Else
Result &= Chr(Asc(CurrentChar) + 1)
End Select
Next
Return Result
End Function

'vb.net 2005 調試通過

⑷ VB.NET程序加密問題

在FormLoad事件里,寫如下代碼:
If MsgBox("是否打開程序?", MsgBoxStyle.OkCancel) = MsgBoxResult.Cancel Then
End
End If
大概方法是這樣,要想加密碼的話,將MsgBox()換成你自己寫的對話框。
如果還嫌不夠具體的話,你這點兒分就不夠。。。

⑸ 求VB.NET生成TET文件的加密方法

使用加密方式存儲即可實現別人無法查看內容,加密的方式有很多,適用你這里使用的是可逆的演算法,推薦你使用DES加密
Imports System  
Imports System.Collections.Generic  
Imports System.Text  
Imports System.IO  
Imports System.Security  
Imports System.Security.Cryptography  

Namespace ZU14  
NotInheritable Public Class DES  
Private iv As String = "1234的yzo" 
Private key As String = "123在yzo" 

'/ <summary> 
'/ DES加密偏移量,必須是>=8位長的字元串  
'/ </summary> 

Public Property IV() As String  
Get  
Return iv  
End Get  
Set  
iv = value 
End Set  
End Property  
'/ <summary> 
'/ DES加密的私鑰,必須是8位長的字元串  
'/ </summary> 

Public Property Key() As String  
Get  
Return key  
End Get  
Set  
key = value 
End Set  
End Property  

'/ <summary> 
'/ 對字元串進行DES加密  
'/ </summary> 
'/ <param name="sourceString">待加密的字元串</param> 
'/ <returns>加密後的BASE64編碼的字元串</returns> 
Public Function Encrypt(sourceString As String) As String  
Dim btKey As Byte() = Encoding.Default.GetBytes(key)  
Dim btIV As Byte() = Encoding.Default.GetBytes(iv)  
Dim des As New DESCryptoServiceProvider()  
Dim ms As New MemoryStream()  
Try  
Dim inData As Byte() = Encoding.Default.GetBytes(sourceString)  
Try  
Dim cs As New CryptoStream(ms, des.CreateEncryptor(btKey, btIV), CryptoStreamMode.Write)  
Try  
cs.Write(inData, 0, inData.Length)  
cs.FlushFinalBlock()  
Finally  
cs.Dispose()  
End Try  

Return Convert.ToBase64String(ms.ToArray())  
Catch  
End Try  
Finally  
ms.Dispose()  
End Try  
End Function 'Encrypt  

'/ <summary> 
'/ 對DES加密後的字元串進行解密  
'/ </summary> 
'/ <param name="encryptedString">待解密的字元串</param> 
'/ <returns>解密後的字元串</returns> 
Public Function Decrypt(encryptedString As String) As String  
Dim btKey As Byte() = Encoding.Default.GetBytes(key)  
Dim btIV As Byte() = Encoding.Default.GetBytes(iv)  
Dim des As New DESCryptoServiceProvider()  

Dim ms As New MemoryStream()  
Try  
Dim inData As Byte() = Convert.FromBase64String(encryptedString)  
Try  
Dim cs As New CryptoStream(ms, des.CreateDecryptor(btKey, btIV), CryptoStreamMode.Write)  
Try  
cs.Write(inData, 0, inData.Length)  
cs.FlushFinalBlock()  
Finally  
cs.Dispose()  
End Try  

Return Encoding.Default.GetString(ms.ToArray())  
Catch  
End Try  
Finally  
ms.Dispose()  
End Try  
End Function 'Decrypt  

'/ <summary> 
'/ 對文件內容進行DES加密  
'/ </summary> 
'/ <param name="sourceFile">待加密的文件絕對路徑</param> 
'/ <param name="destFile">加密後的文件保存的絕對路徑</param> 
Overloads Public Sub EncryptFile(sourceFile As String, destFile As String)  
If Not File.Exists(sourceFile) Then  
Throw New FileNotFoundException("指定的文件路徑不存在!", sourceFile)  
End If  
Dim btKey As Byte() = Encoding.Default.GetBytes(key)  
Dim btIV As Byte() = Encoding.Default.GetBytes(iv)  
Dim des As New DESCryptoServiceProvider()  
Dim btFile As Byte() = File.ReadAllBytes(sourceFile)  

Dim fs As New FileStream(destFile, FileMode.Create, FileAccess.Write)  
Try  
Try  
Dim cs As New CryptoStream(fs, des.CreateEncryptor(btKey, btIV), CryptoStreamMode.Write)  
Try  
cs.Write(btFile, 0, btFile.Length)  
cs.FlushFinalBlock()  
Finally  
cs.Dispose()  
End Try  
Catch  
Finally  
fs.Close()  
End Try  
Finally  
fs.Dispose()  
End Try  
End Sub 'EncryptFile  

'/ <summary> 
'/ 對文件內容進行DES加密,加密後覆蓋掉原來的文件  
'/ </summary> 
'/ <param name="sourceFile">待加密的文件的絕對路徑</param> 
Overloads Public Sub EncryptFile(sourceFile As String)  
EncryptFile(sourceFile, sourceFile)  
End Sub 'EncryptFile  

'/ <summary> 
'/ 對文件內容進行DES解密  
'/ </summary> 
'/ <param name="sourceFile">待解密的文件絕對路徑</param> 
'/ <param name="destFile">解密後的文件保存的絕對路徑</param> 
Overloads Public Sub DecryptFile(sourceFile As String, destFile As String)  
If Not File.Exists(sourceFile) Then  
Throw New FileNotFoundException("指定的文件路徑不存在!", sourceFile)  
End If  
Dim btKey As Byte() = Encoding.Default.GetBytes(key)  
Dim btIV As Byte() = Encoding.Default.GetBytes(iv)  
Dim des As New DESCryptoServiceProvider()  
Dim btFile As Byte() = File.ReadAllBytes(sourceFile)  

Dim fs As New FileStream(destFile, FileMode.Create, FileAccess.Write)  
Try  
Try  
Dim cs As New CryptoStream(fs, des.CreateDecryptor(btKey, btIV), CryptoStreamMode.Write)  
Try  
cs.Write(btFile, 0, btFile.Length)  
cs.FlushFinalBlock()  
Finally  
cs.Dispose()  
End Try  
Catch  
Finally  
fs.Close()  
End Try  
Finally  
fs.Dispose()  
End Try  
End Sub 'DecryptFile  

'/ <summary> 
'/ 對文件內容進行DES解密,加密後覆蓋掉原來的文件  
'/ </summary> 
'/ <param name="sourceFile">待解密的文件的絕對路徑</param> 
Overloads Public Sub DecryptFile(sourceFile As String)  
DecryptFile(sourceFile, sourceFile)  
End Sub 'DecryptFile  
End Class 'DES  
End Namespace 'ZU14 

對文本文件加密
Dim des As New ZU14.DES()  
des.IV = "abcd哈哈笑" 
des.Key = "必須八位" 
'加密
des.EncryptFile("d:\a.txt", "d:\b.txt")  
'解密
des.DecryptFile("d:\b.txt")

⑹ VB.NET開發的軟體,大家一般都是怎麼加密的

網上有很多專業的加密教程

最適合小開發者的軟體加密方式就是下面這個
獲取硬體信息和個人注冊時的姓名手機號等一系列信息,通過預先設定好的加密函數進行散列加密,生成一個只有本人本機能使用的序列號,軟體正版授權的時候用同樣的方式生成序列號進行比對,一樣則通過

⑺ vb.net如何創建mdb文件並設置密碼

首先在項目的VB.NET界面,使用菜單【項目】--【添加引用】--【COM】

選擇 Microsoft ADO Ext. 2.x for DDL and Security

然後單擊【確定】,完成引用。

完整代碼如下:

ImportsADOX
PublicClassForm1

PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
'創建空的access資料庫文件--資料庫文件.mdb,密碼為123
DimMycatAsCatalog=NewCatalog()
Mycat.Create("Provider=Microsoft.Jet.OLEDB.4.0;JetOLEDB:EngineType=5;DataSource=資料庫文件.mdb;JetOLEDB:DatabasePassword=123")

'以下代碼創建一個名為「實驗數據表」
DimMyTableAsADOX.Table=NewADOX.Table'定義新表

MyTable.Name="實驗數據表"'表命名

'給表「實驗數據表」創建一個字元串欄位,欄位名「姓名」
MyTable.Columns.Append("姓名",,ADOX.DataTypeEnum.adWChar)

'給表「實驗數據表」創建一個整數欄位,欄位名「學號」
MyTable.Columns.Append("學號",ADOX.DataTypeEnum.adInteger)'追加一個數字型欄位

'給欄位「學號」創建一個主鍵「PimaryKey_Field」
MyTable.Keys.Append("學號",ADOX.KeyTypeEnum.adKeyPrimary,"學號")

Mycat.Tables.Append(MyTable)'把所有的新欄位追加到表

MyTable=Nothing
Mycat=Nothing

EndSub
EndClass

⑻ 用.net實現文件夾加密

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.IO ;
using System.Diagnostics ;
using System.Threading ;
namespace 偽裝文件夾
{
/// <summary>
/// Form1 的摘要說明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.FolderBrowserDialog foldeOpen;
private System.Windows.Forms.TextBox AfoldePath;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Button button3;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Button AddPassword;
private System.Windows.Forms.ComboBox comboBox1;
private System.ComponentModel.IContainer components;

public Form1()
{
//
// Windows 窗體設計器支持所必需的
//
InitializeComponent();

//
// TODO: 在 InitializeComponent 調用後添加任何構造函數代碼
//
}

/// <summary>
/// 清理所有正在使用的資源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Windows 窗體設計器生成的代碼
/// <summary>
/// 設計器支持所需的方法 - 不要使用代碼編輯器修改
/// 此方法的內容。
/// </summary>
private void InitializeComponent()
{
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.comboBox1 = new System.Windows.Forms.ComboBox();
this.AddPassword = new System.Windows.Forms.Button();
this.button1 = new System.Windows.Forms.Button();
this.AfoldePath = new System.Windows.Forms.TextBox();
this.foldeOpen = new System.Windows.Forms.FolderBrowserDialog();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.button2 = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button();
this.textBox1 = new System.Windows.Forms.TextBox();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.SuspendLayout();
//
// groupBox1
//
this.groupBox1.BackColor = System.Drawing.Color.Transparent;
this.groupBox1.Controls.Add(this.comboBox1);
this.groupBox1.Controls.Add(this.AddPassword);
this.groupBox1.Controls.Add(this.button1);
this.groupBox1.Controls.Add(this.AfoldePath);
this.groupBox1.Location = new System.Drawing.Point(6, 6);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(276, 78);
this.groupBox1.TabIndex = 0;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "加密";
//
// comboBox1
//
this.comboBox1.Items.AddRange(new object[] {
"我的電腦",
"我的文檔",
"撥號網路",
"控制面板",
"計劃任務",
"列印機",
"記事本",
"網路鄰居",
"回收站",
"公文包",
"字體 ",
"Web 文件夾"});
this.comboBox1.Location = new System.Drawing.Point(12, 48);
this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(174, 20);
this.comboBox1.TabIndex = 15;
this.comboBox1.Text = "偽裝類型";
//
// AddPassword
//
this.AddPassword.BackColor = System.Drawing.Color.Transparent;
this.AddPassword.ForeColor = System.Drawing.Color.Red;
this.AddPassword.Location = new System.Drawing.Point(192, 48);
this.AddPassword.Name = "AddPassword";
this.AddPassword.TabIndex = 14;
this.AddPassword.Text = "偽裝";
this.AddPassword.Click += new System.EventHandler(this.AddPassword_Click);
//
// button1
//
this.button1.Location = new System.Drawing.Point(192, 20);
this.button1.Name = "button1";
this.button1.TabIndex = 8;
this.button1.Text = "文件夾路徑";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// AfoldePath
//
this.AfoldePath.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(255)), ((System.Byte)(224)), ((System.Byte)(192)));
this.AfoldePath.Location = new System.Drawing.Point(12, 20);
this.AfoldePath.Name = "AfoldePath";
this.AfoldePath.ReadOnly = true;
this.AfoldePath.Size = new System.Drawing.Size(174, 21);
this.AfoldePath.TabIndex = 7;
this.AfoldePath.Text = "";
//
// groupBox2
//
this.groupBox2.BackColor = System.Drawing.Color.Transparent;
this.groupBox2.Controls.Add(this.button2);
this.groupBox2.Controls.Add(this.button3);
this.groupBox2.Controls.Add(this.textBox1);
this.groupBox2.Location = new System.Drawing.Point(6, 90);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(276, 76);
this.groupBox2.TabIndex = 1;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "解密";
//
// button2
//
this.button2.ForeColor = System.Drawing.Color.Red;
this.button2.Location = new System.Drawing.Point(192, 48);
this.button2.Name = "button2";
this.button2.TabIndex = 14;
this.button2.Text = "解密";
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// button3
//
this.button3.ForeColor = System.Drawing.Color.Red;
this.button3.Location = new System.Drawing.Point(192, 20);
this.button3.Name = "button3";
this.button3.TabIndex = 8;
this.button3.Text = "文件夾路徑";
this.button3.Click += new System.EventHandler(this.button3_Click);
//
// textBox1
//
this.textBox1.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(128)), ((System.Byte)(255)), ((System.Byte)(128)));
this.textBox1.Location = new System.Drawing.Point(12, 24);
this.textBox1.Name = "textBox1";
this.textBox1.ReadOnly = true;
this.textBox1.Size = new System.Drawing.Size(174, 21);
this.textBox1.TabIndex = 7;
this.textBox1.Text = "";
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(288, 174);
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.Name = "Form1";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "偽裝文件夾";
this.groupBox1.ResumeLayout(false);
this.groupBox2.ResumeLayout(false);
this.ResumeLayout(false);

}
#endregion

/// <summary>
/// 應用程序的主入口點。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void button1_Click(object sender, System.EventArgs e)
{
if(foldeOpen.ShowDialog ()==DialogResult.OK )
{
try
{
if(foldeOpen.SelectedPath .Substring (3,10)=="Documents ")
{
MessageBox.Show ("我不建議C盤下的文件夾偽裝,這樣可能會導致系統出問題");
}
else
{
AfoldePath.Text =foldeOpen.SelectedPath;
}
}
catch
{
if(foldeOpen.SelectedPath.Length >=4)
{
AfoldePath.Text =foldeOpen.SelectedPath;
}
else
{
MessageBox.Show ("無法對盤符進行偽裝.");
}
}
}
}
private void AddPassword_Click(object sender, System.EventArgs e)
{
try
{
ProcessStartInfo p3=new ProcessStartInfo ("attrib.exe",@"-s -r -a -h "+AfoldePath.Text);
p3.WindowStyle= System.Diagnostics.ProcessWindowStyle.Hidden;
Process.Start (p3);
ProcessStartInfo p1=new ProcessStartInfo ("attrib.exe",@"-s -r -a -h "+AfoldePath.Text+@"\desktop.ini");
p1.WindowStyle= System.Diagnostics.ProcessWindowStyle.Hidden;
Process.Start (p1);
StreamWriter sw2=new StreamWriter (AfoldePath.Text+@"\desktop.ini" );
sw2.WriteLine (@"[.ShellClassInfo]" );
sw2.WriteLine ("CLSID="+GetPasType());
sw2.Close ();
ProcessStartInfo p =new ProcessStartInfo ("attrib.exe",@"+s +a +h +r "+AfoldePath.Text+@"\desktop.ini");
p.WindowStyle= System.Diagnostics.ProcessWindowStyle.Hidden;
Process.Start (p);
ProcessStartInfo p2=new ProcessStartInfo ("attrib.exe",@"+s +r "+AfoldePath.Text);
p2.WindowStyle= System.Diagnostics.ProcessWindowStyle.Hidden;
Process.Start (p2);
}
catch(Exception ee)
{
MessageBox.Show (ee.Message .ToString ());
}
}
private string GetPasType()
{
int index=comboBox1.SelectedIndex;
switch (index)
{
case 0: return @"{20D04FE0-3AEA-1069-A2D8-08002B30309D}";
case 1: return @"{450D8FBA-AD25-11D0-98A8-0800361B1103}";
case 2: return @"{992CFFA0-F557-101A-88EC-00DD010CCC48}";
case 3: return @"{21EC2020-3AEA-1069-A2DD-08002B30309D}";
case 4: return @"{D6277990-4C6A-11CF-8D87-00AA0060F5BF}";
case 5: return @"{2227A280-3AEA-1069-A2DE-08002B30309D}";
case 6: return @"{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}";
case 7: return @"{208D2C60-3AEA-1069-A2D7-08002B30309D}";
case 8: return @"{645FF040-5081-101B-9F08-00AA002F954E}";
case 9: return @"{85BBD920-42A0-1069-A2E4-08002B30309D}";
case 10: return @"{BD84B380-8CA2-1069-AB1D-08000948F534}";
case 11: return @"{BDEADF00-C265-11d0-BCED-00A0C90AB50F}";
}
return @"{20D04FE0-3AEA-1069-A2D8-08002B30309D}";
}
private void button3_Click(object sender, System.EventArgs e)
{
if(foldeOpen.ShowDialog ()==DialogResult.OK )
{
textBox1.Text =foldeOpen.SelectedPath;
}
}

private void button2_Click(object sender, System.EventArgs e)
{
try
{
ProcessStartInfo p2=new ProcessStartInfo ("attrib.exe",@"-s -r -a -h "+textBox1.Text);
p2.WindowStyle= System.Diagnostics.ProcessWindowStyle.Hidden;
Process.Start (p2);
ProcessStartInfo p1=new ProcessStartInfo ("attrib.exe",@"-s -h -r "+textBox1.Text+@"\desktop.ini");
p1.WindowStyle= System.Diagnostics.ProcessWindowStyle.Hidden;
Process.Start (p1);
System.Threading.Thread.Sleep(1000);
File.Delete (textBox1.Text+@"\desktop.ini");
MessageBox.Show ("解密成功.");
}
catch(Exception ee)
{
MessageBox.Show (ee.Message.ToString ());
}
}
}
}

⑼ 怎麼用VB編一個加密文件

最簡單的異或加密,二次加密實際上就是解密:

Private Sub Command1_Click()
Text2.Text = jiami(Text1.Text)
MsgBox jiami(Text2.Text)
End Sub

Private Function jiami(s As String) As String
Dim i As Long
For i = 1 To Len(s)
jiami = jiami & Chr(Asc(Mid(s, i, 1)) Xor 72) '72相當於密鑰,可以用別的數字
Next
End Function

⑽ VB.net實現簡單的加密解密--->該怎麼寫代碼

已在VB上調試通過:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i, j As Integer
Dim et(TextBox1.Text.Length) As Char

j = 0
For i = 0 To TextBox1.Text.Length - 1
et(i) = Chr(AscW(TextBox1.Text.Chars(i)) + AscW(TextBox2.Text.Chars(j)))
j = j + 1
If j >= TextBox2.Text.Length Then j = 0
Next
TextBox1.Text = et
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim i, j As Integer
Dim et(TextBox1.Text.Length) As Char

j = 0
For i = 0 To TextBox1.Text.Length - 1
et(i) = Chr(AscW(TextBox1.Text.Chars(i)) - AscW(TextBox2.Text.Chars(j)))
j = j + 1
If j >= TextBox2.Text.Length Then j = 0
Next
TextBox1.Text = et
End Sub

熱點內容
servlet的webxml怎麼配置 發布:2025-05-14 02:51:46 瀏覽:771
怎麼取消手勢密碼 發布:2025-05-14 02:51:11 瀏覽:638
openvpn搭建vpn伺服器搭建 發布:2025-05-14 02:47:52 瀏覽:998
密碼忘了從哪裡找 發布:2025-05-14 02:39:09 瀏覽:548
我的世界什麼伺服器有前途 發布:2025-05-14 02:30:31 瀏覽:528
java程序反編譯 發布:2025-05-14 02:18:46 瀏覽:458
蛤蟆編程 發布:2025-05-14 02:17:12 瀏覽:643
解壓縮文件後綴 發布:2025-05-14 02:14:07 瀏覽:304
閱章娛樂系統清理數據密碼是多少 發布:2025-05-14 02:09:10 瀏覽:973
米家的密碼鎖初始密碼是多少 發布:2025-05-14 01:58:51 瀏覽:37