2017年3月31日 星期五

[研究] SSL. TLS

[研究] SSL. TLS

2017-03-31

傳輸層安全協議(英語:Transport Layer Security,縮寫:TLS)
https://zh.wikipedia.org/wiki/%E5%82%B3%E8%BC%B8%E5%B1%A4%E5%AE%89%E5%85%A8%E5%8D%94%E8%AD%B0
前身安全通訊協定(Secure Sockets Layer,縮寫:SSL)
這裡有說明演算法支援的最大長度金鑰

SHA家族
https://zh.wikipedia.org/wiki/SHA%E5%AE%B6%E6%97%8F

RSA號碼列表
https://zh.wikipedia.org/wiki/RSA%E8%99%9F%E7%A2%BC%E5%88%97%E8%A1%A8

RSA加密演算法
https://zh.wikipedia.org/wiki/RSA%E5%8A%A0%E5%AF%86%E6%BC%94%E7%AE%97%E6%B3%95

進階加密標準(英語:Advanced Encryption Standard,縮寫:AES)
https://zh.wikipedia.org/wiki/%E9%AB%98%E7%BA%A7%E5%8A%A0%E5%AF%86%E6%A0%87%E5%87%86


Starting Nmap 7.40 ( https://nmap.org ) at 2017-03-25 13:46 ¥x¥_?D·CRE?!
Nmap scan report for (刪除)
Host is up (0.00s latency).
rDNS record for (刪除)
PORT    STATE SERVICE
443/tcp open  https
| ssl-cert: Subject: commonName=(刪除)
| Subject Alternative Name: DNS:(刪除)
| Issuer: organizationName=\xE8\xA1\x8C\xE6\x94\xBF\xE9\x99\xA2/countryName=TW
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2015-05-12T02:08:55
| Not valid after:  2018-05-12T02:08:55
| MD5:   97cb ef80 b922 8383 3d84 305d 482c 67fb
|_SHA-1: 1ebc bcdc fc69 3417 8507 a88e 299d 4c65 d7ad de48
| ssl-enum-ciphers:
|   TLSv1.0:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|       TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - C
|       TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - C
|     compressors:
|       NULL
|     cipher preference: server
|     warnings:
|       64-bit block cipher 3DES vulnerable to SWEET32 attack
|       Broken cipher RC4 is deprecated by RFC 7465
|       Ciphersuite uses MD5 for message integrity
|   TLSv1.1:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|       TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - C
|       TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - C
|     compressors:
|       NULL
|     cipher preference: server
|     warnings:
|       64-bit block cipher 3DES vulnerable to SWEET32 attack
|       Broken cipher RC4 is deprecated by RFC 7465
|       Ciphersuite uses MD5 for message integrity
|   TLSv1.2:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
|       TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 2048) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (rsa 2048) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A
|       TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|       TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - C
|       TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - C
|     compressors:
|       NULL
|     cipher preference: server
|     warnings:
|       64-bit block cipher 3DES vulnerable to SWEET32 attack
|       Broken cipher RC4 is deprecated by RFC 7465
|       Ciphersuite uses MD5 for message integrity
|_  least strength: C

Nmap done: 1 IP address (1 host up) scanned in 12.35 seconds


(完)


[研究] ASP.NET Core 1.1 MVC 6 入門(二)增加控制器

[研究] ASP.NET Core 1.1 MVC 6 入門(二)增加控制器

2017-03-31

工具:Visual Studio 2017 Enterprise,環境:Windows 7 x64
續這篇

[研究] ASP.NET Core 1.1 MVC 6 入門(一) 開始
http://shaurong.blogspot.com/2017/03/aspnet-core-11-mvc-6.html

Adding a controller
https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/adding-controller

內容不是完全翻譯,因為練習的心得,有增加、刪減圖片和文字。



(下圖) Visual Studio 2017 畫面

(下圖) 比較一下舊版 Visual Studio 2015 with Update 3 的畫面,舊版還會在 Views 目錄下多了一個 HelloWorld 目錄

ASP.NET MVC 的 URL 格式為

/[Controller]/[ActionName]/[Parameters]


Visual Studio 2015 with Update 3 用 MVC 5 定義在 App_Start/RouteConfig.cs 檔案中
public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}


Visual Studio 2017 用 .NET Core 1.1 MVC 6 定義在 Startup.cs 檔案中

app.UseMvc(routes =>
{
    routes.MapRoute(
        name: "default",
        template: "{controller=Home}/{action=Index}/{id?}");
});


********************************************************************************

說明參數 [Controller] 控制器的用法

MVC
M (Model) :
V (View) :
C (Controller) : Controllers\HelloWorldController.cs 內容

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;

// For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860

namespace MvcMovie.Controllers
{
    public class HelloWorldController : Controller
    {
        // GET: /<controller>/
        public IActionResult Index()
        {
            return View();
        }
    }
}



換成
using Microsoft.AspNetCore.Mvc;
using System.Text.Encodings.Web;

namespace MvcMovie.Controllers
{
    public class HelloWorldController : Controller
    {
        // 
        // GET: /HelloWorld/

        public string Index()
        {
            return "This is my default action...";
        }

        // 
        // GET: /HelloWorld/Welcome/ 

        public string Welcome()
        {
            return "This is the Welcome action method...";
        }
    }
}

(下圖) 按下 F5 執行
會出現類似網址,其中 port 可能不一定多少,後面 HelloWorld 請手動加上
http://localhost:11621/HelloWorld/



********************************************************************************

說明參數 [ActionName] 控制器的用法

(下圖) 按下 F5 執行
會出現類似網址,其中 port 可能不一定多少,後面 HelloWorld/Welcome 請手動加上
http://localhost:11621/HelloWorld/Welcome



http://localhost:11621/HelloWorld/Welcome
表示叫用 HelloWorldContoller.cs 控制器中的 Welcome 方法

********************************************************************************

說明參數 [Parameters] 的用法

Visual Studio 2015 Update 3 的 MVC 5
修改 Controllers\HelloWorldController.cs  的 Welcome() 方法如下
public string Welcome(string name, int numTimes = 1)
{
     return HttpUtility.HtmlEncode("Hello " + name + ", NumTimes is: " + numTimes);
}


在 Visual Studio 2017 的 .NET Core 1.1 MVC 6
修改 Controllers\HelloWorldController.cs  的 Welcome() 方法如下

public string Welcome(string name, int ID = 1)
{
    return HtmlEncoder.Default.Encode($"Hello {name}, ID: {ID}");
}


(下圖) 按下 F5 執行
會出現類似網址,其中 port 可能不一定多少,網址改為如下
http://localhost:11621/HelloWorld/Welcome?name=Scott&numtimes=4



********************************************************************************

修改 Controllers\HelloWorldController.cs  的 Welcome() 方法的參數,讓它和 App_Start/RouteConfig.cs 中參數名稱 ID 相同

修改 Controllers\HelloWorldController.cs  的 Welcome() 方法如下

Visual Studio 2015 with Update 3 的 MVC 5
public string Welcome(string name, int ID = 1)
{
    return HttpUtility.HtmlEncode("Hello " + name + ", ID: " + ID);
}


定義在 App_Start/RouteConfig.cs 檔案中
public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );

**********

Visual Studio 2017 .NET Core 1.1 MVC 6
public string Welcome(string name, int ID = 1)
{
    return HtmlEncoder.Default.Encode($"Hello {name}, ID: {ID}");
}

在 Startup.cs 中
app.UseMvc(routes =>
{
    routes.MapRoute(
        name: "default",
        template: "{controller=Home}/{action=Index}/{id?}");
});

(下圖) 按下 F5 執行
會出現類似網址,其中 port 可能不一定多少,網址改為如下
http://localhost:11621/HelloWorld/Welcome/3?name=Rick


********************************************************************************

Visual Studio 2015 with Update 3 的 MVC 5
修改 App_Start/RouteConfig.cs 中路由(route)

修改 App_Start/RouteConfig.cs 檔案中
public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

      routes.MapRoute(
           name: "Hello",
           url: "{controller}/{action}/{name}/{id}"
       );
    );


(待續)

相關

[研究] ASP.NET Core 1.1 MVC 6 入門(一) 開始
http://shaurong.blogspot.com/2017/03/aspnet-core-11-mvc-6.html

[研究] ASP.NET Core 1.1 MVC 6 入門(二)增加控制器
http://shaurong.blogspot.com/2017/03/aspnet-core-11-mvc-6_31.html

****************************************

[研究] ASP.NET MVC 5入門(一)開始
http://shaurong.blogspot.com/2016/06/aspnet-mvc-5_21.html

[研究] ASP.NET MVC 5入門(二)增加控制器(Controller)

[研究] ASP.NET MVC 5入門(三)增加檢視(View)

[研究] ASP.NET MVC 5入門(四)增加模型(Model)

[研究] ASP.NET MVC 5入門(五)建立 SQL Server LocalDB 的連線字串

[研究] ASP.NET MVC 5入門(六)從 Controller 存取 Model 的資料

[研究] ASP.NET MVC 5入門(七)瞭解 Edit Method 和 Edit View

[研究] ASP.NET MVC 5入門(八)增加搜尋 Method 和 View

[研究] ASP.NET MVC 5入門(九)增加新欄位

[研究] ASP.NET MVC 5入門(十)增加驗證 (Validation)

[研究] ASP.NET MVC 5入門(十一)瞭解 Detials 和 Delete Method

[研究] ASP.NET Core 1.1 MVC 6 入門(一) 開始

[研究] ASP.NET Core 1.1 MVC 6 入門(一) 開始

2017-03-30

這篇是參考下面這篇的學習

Building your first ASP.NET Core MVC app with Visual Studio
https://docs.asp.net/en/latest/tutorials/first-mvc-app/index.html

內容不是完全翻譯,因為練習的心得,有增加、刪減圖片和文字。

舊版
Getting Started with ASP.NET MVC 5
http://www.asp.net/mvc/overview/getting-started/introduction/getting-started

********************************************************************************

安裝

Visual Studio 2017 已經內含 .NET Core 1.1 版






(下圖) 因為敝人電腦目前預設瀏覽器是 Google Chrome ,所以跳出此畫面,最後敝人會說明如何切換到其他瀏覽器



其他的和 MVC 5 幾乎相同,請直接參考本文最下方相關文章。

********************************************************************************

如果要使用不同的瀏覽器


(下圖) 選過一次後,下拉選單會多出 "網頁瀏覽器" 這項


********************************************************************************

(待續)

相關

[研究] ASP.NET Core 1.1 MVC 6 入門(一) 開始
http://shaurong.blogspot.com/2017/03/aspnet-core-11-mvc-6.html

[研究] ASP.NET MVC 5入門(一)開始
http://shaurong.blogspot.com/2016/06/aspnet-mvc-5_21.html

[研究] ASP.NET MVC 5入門(二)增加控制器(Controller)

[研究] ASP.NET MVC 5入門(三)增加檢視(View)
http://shaurong.blogspot.com/2016/06/aspnet-mvc-5view.html

[研究] ASP.NET MVC 5入門(四)增加模型(Model)
http://shaurong.blogspot.com/2016/06/aspnet-mvc-5model.html

[研究] ASP.NET MVC 5入門(五)建立 SQL Server LocalDB 的連線字串
http://shaurong.blogspot.com/2016/06/aspnet-mvc-5-sql-server-localdb.html

[研究] ASP.NET MVC 5入門(六)從 Controller 存取 Model 的資料
http://shaurong.blogspot.com/2016/06/aspnet-mvc-5-controller-model.html

[研究] ASP.NET MVC 5入門(七)瞭解 Edit Method 和 Edit View
http://shaurong.blogspot.com/2016/06/aspnet-mvc-5-edit-method-edit-view.html

[研究] ASP.NET MVC 5入門(八)增加搜尋 Method 和 View
http://shaurong.blogspot.com/2016/06/aspnet-mvc-5-method-view.html

[研究] ASP.NET MVC 5入門(九)增加新欄位

[研究] ASP.NET MVC 5入門(十)增加驗證 (Validation)
http://shaurong.blogspot.com/2016/06/aspnet-mvc-5-validation.html

[研究] ASP.NET MVC 5入門(十一)瞭解 Detials 和 Delete Method






2017年3月29日 星期三

[研究] Embarcadero RAD Studio 10.2 安裝 (Windows 7 x64)

[研究] Embarcadero RAD Studio 10.2 安裝 (Windows 7 x64)

2017-03-29

官方網站
https://www.embarcadero.com/
可以免費註冊、申請試用版序號

發佈說明:
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Main_Page
更新說明:
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/What%27s_New

官方下載地址(任選其一):
http://cc.embarcadero.com/Item/30725
http://altd.embarcadero.com/download/radstudio/10.2/delphicbuilder10_2.iso
ftp://ftpd.embarcadero.com/download/radstudio/10.2/delphicbuilder10_2.iso
.iso 檔案 6.07 GB (6,524,956,672 位元組)

只是大略安裝看一下

線上安裝檔案
radstudio10_2_esd.exe  ( 167 MB)






























(完)

[研究] Oracle VirtualBox 5.1.18 是否支援樹狀結構快照測試

[研究] Oracle VirtualBox 5.1.18 是否支援樹狀結構快照測試


2017-03-29



測試是可以的。

(完)


2017年3月26日 星期日

[研究] 趨勢科技 Trend Micro Deep Security Agent 9.6 安裝 (Windows Server 2008 R2)

[研究] 趨勢科技 Trend Micro Deep Security - Deep Security Agent 9.6 安裝 (Windows Server 2008 R2)

2017-03-26












(完)

相關

[研究] 趨勢科技 Trend Micro Deep Security Agent 9.6 安裝 (Windows Server 2008 R2)
http://shaurong.blogspot.com/2017/03/trend-micro-deep-security-agent-96.html

[研究] 趨勢科技 Trend Micro Deep Security Manager 9.6 安裝試用 (Windows Server 2016)
http://shaurong.blogspot.com/2017/03/deep-security-manager-96-windows-server.html