Tạo hàm mã hóa SHA-256 trên Oracle 11g R2 (hashing-with-sha-256-in-oracle-11g-r2)

Hàm băm SHA1 đã được công bố đã bị phá mà không phải bằng thuật toán vét cạn.
Tất cả các mã hóa toàn vẹn dữ liệu của mã SHA-1 cần phải chuyển đổi sang bộ mã hóa cao cấp hơn ví dụ hàm SHA-256.

Trong hệ thống của công ty mình hiện đang sử dụng SHA-1 để mã hóa thông tin trước khi gửi sang đối tác, vì vậy cần phải nâng cấp sang hàm băm SHA-256.
Hàm băm SHA-256 chỉ có sẵn từ bản Oracle 12c, bản Oracle 11g sẽ không có. Có 2 cách để có được hàm băm SHA-256:
Cách 1: Sử dụng thư viện của Java có sẵn trong JDK để tạo nên hàm SHA-256
Tham khảo tại địa chỉ: https://dzone.com/articles/hashing-with-sha-256-in-oracle-11g-r2
Nhưng ở địa chỉ này chạy sẽ không được procedure do phải tắt tính năng define của Orcle đi.
Các bước lần lượt như sau:

B1: Tắt chế độ define

set define off


B2: Tạo tài nguyên class Java trong Oracle:

CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED test."calcsha"
    AS import java.security.MessageDigest; 
 public class calcsha2 
     {
         static public String fncsha(String inputVal) throws Exception
         {           
             MessageDigest myDigest = MessageDigest.getInstance("SHA-256");        
             myDigest.update(inputVal.getBytes());
             byte[] dataBytes = myDigest.digest();
             StringBuffer sb = new StringBuffer();
             for (int i = 0; i < dataBytes.length; i++) {
              sb.append(Integer.toString((dataBytes[i])).substring(1));
             }        
             StringBuffer hexString = new StringBuffer();
             for (int i=0;i<dataBytes.length;i++) {
                 String hex=Integer.toHexString(0xff & dataBytes[i]);
                     if(hex.length()==1) hexString.append('0');
                     hexString.append(hex);
             }
             String retParam = hexString.toString();
             return retParam;           
         }    
     }

B3: Viết thủ tục để gọi đến tài nguyên trên:

CREATE OR REPLACE FUNCTION test.hash_sha256 (txt varchar2)
 RETURN VARCHAR2
 AS
 LANGUAGE JAVA
 NAME 'calcsha2.fncsha(java.lang.String) return String';

B4: Bật trả chế độ define

 set define on

B5: Test kết quả:

 select hash_sha256('123456789') from dual;



So sánh với kết quả online: https://passwordsgenerator.net/sha256-hash-generator/

Cách 2: Cách này viết mới luôn hàm SHA-256 bằng PL-SQL
Tham khảo tại: https://github.com/CruiserX/sha256_plsql

Ta cũng có thể test kết quả so với cách 1.

Trưởng nhóm mình yêu cầu làm cách 2. Theo bản thân mình thì nên làm cách 1 vì toàn bộ là sử dụng thư viện chung JAVA của toàn thế giới, phần code tường minh. Còn cách 2 thì đi copy trên mạng về chạy cảm giác không được an toàn lắm.

Download tạp chí Trí tuệ nhân tạo số 7

Trong số này, Mục Góc nhìn chuyên gia sẽ giới thiệu bài viết của nhà báo  Ariel Conn thảo luận về Trí tuệ Nhân tạo dưới góc nhìn an toàn và đạo đức.

Phần Machine Learning Tutorial, tác giả Hà Đỗ sẽ bàn về Multicollinearity, một vấn đề rất nghiêm trọng của Regression.

Tác giả Nguyễn Linh sẽ tiếp tục giới thiệu những bước cơ bản để xử lý dữ liệu ngôn ngữ thô. Sau đó, chúng ta sẽ đi vào tìm hiểu phương pháp tiếp cận thống kê với mô hình Ngram.

Các bạn có thể download Tạp chí Trí tuệ Nhân tạo số 7 tại đây.

Nguồn: tapchiai.com

Dowload tạp chí Trí tuệ nhân tạo số 5

Năm 2017 khép lại với nhiều thành tự nổi bật trong lĩnh vực Trí tuệ nhân tạo nói riêng và trong lĩnh vực công nghệ nói chung. Năm vừa qua, sự ra đời của AlphaGo, AlphaGo Zero đã chứng minh được sức mạnh tiềm tàng của công nghệ Trí tuệ Nhân tạo, mở ra nhiều cơ hội mới trong tương lai trong việc sử dụng công nghệ này để giải quyết những vấn đề của con người. Nhưng nó cũng đặt ra nhiều thách thức với chúng ta, đặc biệt là trong vấn đề việc làm, trong vấn đề sự an toàn của công nghệ tiềm năng này.

Số tháng 1 cũng sẽ đánh dấu một bước chuyển mình mới của Tạp chí Trí tuệ Nhân tạo, chuyển từ việc giới thiệu những kiến thức cơ bản trong nghiên cứu và phát triển Machine Learning và Trí tuệ Nhân tạo, sang những vấn đề phức tạp nhưng cũng nhiều điều thú vị hơn. Nhưng trước tiên, hãy xem trong số này có những gì:

  • Phần Góc nhìn chuyên gia, sẽ giới thiệu về hiện trạng của việc ứng dụng công nghệ Trí tuệ Nhân tạo trong lĩnh vực Y tế và sức khỏe, một lĩnh vực nhận được nhiều sự quan tâm từ giới nghiên cứu Trí tuệ Nhân tạo.
  • Phần Machine Learning Tutorial sẽ tiếp tục nói về linear và logistic regression, mà cụ thể là một số phân tích ex-post đơn giản cho phép hiểu rõ hơn về cấu trúc dữ liệu và ảnh hưởng của chúng lên mô hình
  • Phần R trong Machine Learning sẽ tiếp tục giới thiệu một số thư viện R quan trọng, cần phải biết như ggplot2, shiny và R Markdown

Phần 2 pages paper số này xin khất các bạn độc giả vì Ban Biên tập khá bận bịu trong thời gian này.

Như đã nói ở trên, số thứ 5 sẽ kết thúc giai đoạn kiến thức cơ bản của Tạp chí Trí tuệ Nhân tạo, sau số này tạp chí sẽ đi chuyên sâu hơn vào các lĩnh vực của Trí tuệ Nhân tạo, mà trước mắt là Machine Learning và Natural Language Processing.

Phần Machine Learning sau khi đã giới thiệu đủ các lý thuyết cơ bản sẽ hướng tới giải quyết cách bài toán cụ thể hơn trong thực tế.

Phần Natural Languague Processing sẽ bàn về cách ứng dụng các thuật toán NLP vốn được phát triển trên nền tảng ngôn ngữ Anh, vào trong tiếng Việt.

Tạp chí cũng đang cố gắng mở rộng sang các lĩnh vực khác trong Trí tuệ Nhân tạo như Computer Vision, Speech Processing ..v.v. Vì vậy, Ban biên tập mong muốn kêu gọi sự tham gia của cách thành viên trong cộng đồng nghiên cứu Trí tuệ Nhân tạo cùng tham gia với bọn mình trong công cuộc phát triển Tạp chí Trí tuệ Nhân tạo.

Các bạn có thể download Tạp chí Trí tuệ Nhân tạo số 5 tại đây.

Nguồn: tapchiai.com

Top 10 ứng dụng thực tế của Machine Learning

Machine Learning là một sáng tạo hiện đại giúp con người không chỉ ở quy mô công nghiệp và các quy trình chuyên nghiệp mà còn thúc đẩy cuộc sống hàng ngày. Nhưng Machine Learning là gì? Nó là một phần của Trí tuệ nhân tạo, Machine Learning tập trung vào các kỹ thuật thống kê để xây dựng các hệ thông máy tính trông minh để học từ các cơ sở dữ liệu sẵn có cho nó. Hiện nay, Machine learning đã được sử dụng trong nhiều lĩnh vực và ngành công nghiệp. Ví dụ: chuẩn đoán trong y học, xử lý ảnh, dự đoán tài chính, phân loại, học kết hợp, hồi quy…
Các hệ thống thông minh được dây dựng dựa trên các thuật toán Machine Learning có khả năng học hỏi từ kinh nghiệm trước đó hoặc dữ liệu lịch sử. Các ứng dụng của Machine Learning cung cấp kết quả trên cơ sở dữ liệu hoặc kinh nghiệp từ quá khứ. Trong bài này, chúng ta sẽ thảo luận về 10 ví dụ thực tế về cách sử dụng Machine Learning đang giúp tạo ra các công nghệ mới mạnh mẽ hơn.

Nhận dạng hình ảnh (Image Recognition)

Nhận dạng hình ảnh là một trong những ứng dụng phổ biến nhất của Machine Learning. Có nhiều tình huống để phân loại đối tượng trong một hình ảnh kỹ thuật số. Ví dụ, trường hợp ảnh đen trắng thì sẽ sử dụng phép đo mức xám của từng pixel còn trong ảnh màu thì lại sử dụng phép đo cường độ của 3 màu khác nhau tạo nên 1 pixel (R-G-B).
Machine Learning cũng được ứng dụng để phát hiện khuôn mặt trong ảnh. Có một danh mục riêng cho mỗi người trong cơ sở dữ liệu hình ảnh của nhiều người. Machine Learning cũng được sử dụng trong nhận dạng chữ viết để phân biệt chữ viết tay hay chữ in. Chúng ta cần phân đoạn một đoạn văn bản thành các hình ảnh nhỏ hơn, mỗi hình ảnh chứa một ký tự.

Nhận dạng giọng nói (Speech Recognition)

Nhận dạng giọng nói là việc chuyển đổi giọng nói thành văn bản. Nó được biết đến với máy nhận dạng giọng nói hoặc nhận dạng giọng nói tự động. Ở đây, một phần mềm có thể nhận ra các từ được nói trong các clip hoặc audio và sau đó chuyển đổi thành file văn bản. Phép đo trong ứng dụng này có thể là một tập hợp các số đại diện cho tín hiệu giọng nói. Ta cũng có thể phân đoạn tín hiệu giọng nói theo cường độ trong các khung thời gian khác nhau.
Nhận dạng giọng nói được sử dụng trong các ứng dụng có giao diện tương tác qua giọng nói, tìm kiếm bằng giọng nói… Giao diện người dùng thông qua giọng nói bao gồm quay số bằng giọng nói, điều hướng cuộc gọi và điều khiển thiết bị. Nó cũng có thể được sử dụng như một công cụ nhập liệu đơn giản và chuẩn bị các tài liệu có cấu trúc.

Chuẩn đoán trong ý học (Medical diagnosis)

Machine Learning có thể sử dụng trong các kỹ thuật và công cụ chuẩn đoán bệnh. Nó được sử dụng để phân tích các biểu hiện lâm sàng và kết hợp chúng để tiên đoán về sự tiến triển của bệnh tật để thông tin tới bác sỹ để lập kế hoạch điều trị và theo dõi bệnh nhân. Đây là những ứng dụng thành công của các phương pháp Machine Learning. Nó có thể giúp tích hợp các hệ thống trong lĩnh vực chăm sóc sức khỏe.

Phân tích chứng khoán (Statistical Arbitrage)

Trong lĩnh vực tài chính, chứng khoán nhắm vào các giao dịch tự động ngắn hạn với số lượng giao dịch lớn. Trong các chiến lược này, người dùng sẽ tập trung vào việc thực hiện các thuật toán giao dịch cho một mã chứng khoán trên cơ sở số lượng cũng như tương quan lịch sử và các biến số kinh tế chung. Phương pháp Machine Learning được áp dụng để có thể có được các chiến lược chênh lệnh giá. Chúng ta có thể áp dụng hồi quy tuyến tính (linear regression) và Vecto hỗ trợ (Support Vector Machine – SVM) cho bài toán này.

Learning associations

Learning associations là quá trình phát triển những hiểu biết sâu sắc về các hiệp hội giữa các sản phẩm. Ví dụ điển hình là làm thể nào các sản phẩm không liên quan có thể liên kế được với nhau. Một trong những ứng dụng của Machine Learning nghiên cứu mối liên hệ giữa các sản mà người dùng mua. Nếu một người mua sản phẩm thì hệ thống sẽ gợi ý các sản phẩm tương tự vì chúng có mối liên quan với nhau. Khi bất kỳ một sản phẩm mới nào được tung ra thị trường thì chúng sẽ được liên kết với các sản phẩm cũ để tăng doanh số.

Phân loại (Classification)

Classification là quá trình đặt từng cá nhân vào một trong nhiều lớp. Classification giúp phân tích các phép đo của một đối tượng để xác định xem nó sẽ thuộc vào danh mục nào. Để thiết lập mối quan hệ hiệu quả, các nhà phân tích sử dụng dữ liệu. Ví dụ, trước khi ngân hàng quyết định cho khách hàng vay, ngân hàng sẽ đánh giá xem khách hàng có khả năng trả khoản vay đó hay không. Bằng cách xem xét các yếu tố như thu nhập, tiết kiệm, lịch sử tài chính… Thông tin này được lấy từ dữ liệu cũ trong khoản vay.

Dự đoán (Prediction)

Machine Learning cũng được sử dụng trong các hệ thống dự đoán. Vẫn xem xét ví dụ về việc cho vay của ngân hàng, để tính xác suất xảy ra lỗi, hệ thống cần phân loại dữ liệu có sẵn theo nhóm. Nó được xác định bởi một bộ quy tắc được quy định bởi các nhà phân tích. Sau khi được phân loại xong, ta có thể tính xác xuất về lỗi có thể xảy ra. Những tính toán này có thể áp dụng trên nhiều lĩnh vực và mục đích khác nhau. Tạo dự đoánh là một ứng dụng phổ biến của Machine Learning.

Khai thác (Extraction)

Khai thác thông tin là một ứng dụng tốt nhất của Machine Learning. Nó là quá trình trích xuất thông tin có cấu trúc từ dữ liệu phi cấu trúc. Ví dụ các trang web, bài viết, blog, báo cáo kinh doanh và email. Cơ sở dữ liệu quan hệ duy trì đầu ra sản phẩm bởi việc trích xuất thông tin. Quá trình trích xuất lấy một tập hợp các tài liệu làm đầu vào và đầu ra dữ liệu có cấu trúc.

Hồi quy (Regression)

Chúng ta có thể thực hiện Machine Learning bằng thuật toán hồi quy. Trong hồi quy, chúng ta sử dụng các nguyên tắc của Machine Learning để tối ưu hóa các tham số. Nó cũng được sử dụng để giảm sai số gần đúng và tính toán kết quả gần nhất có thể. Cjimgs ta cimxh cps thể sử dụng Machine Learning để tới ưu hóa các chức năng. Chúng ta có thể chọn thay đổi các đầu vào để có được các kết quả gần nhất có thể.

Dịch vụ tài chính (Financial Services)

Machine Learning có rất nhiều tiềm năng trong lĩnh vực tài chính ngân hàng. Nó là động lực đằng sau sự phổ biến các dịch vụ tài chính. Machine Learning có thể giúp các ngân hàng, tổ chức tài chính đóng các tài khoản trước khi nó xảy ra. Nó cũng có thể theo dõi các mô hình chi tiêu của khách hàng. Machine Learning cũng có thể phân tích thị trường. Máy thông minh có thể được đào tạo để theo dõi các môi hình chi tiêu. Thuật toán có thể xác định các xu hướng dễ dàng và phản ứng ngay trong thời gian thực.

Kết luận

Tóm lại, chúng ta có thể nói rằng Machine Learning là một bước đột phá đáng kinh ngạc trong lĩnh vực trí tuệ nhân tạo. Trong khi đó, hàng ngày Machine Learning thay đổi để cải thiện cuộc sống của chúng ta.

Có thể bạn quan tâm:

Cài đặt Flask và Flask-API trên Window offline

Để cài đặt Flask và Flask-API offline trên Window ta cần dowload đầy đủ các thư viện và cài đặt lần lượt như sau:
(Cách cài đặt Package Office như bài hướng dẫn: Cách cài đặt các package của python trên Window offline)

1: Werkzeug
2: MarkupSafe
3: pytz
4: Babel
5: Jinja2
6: itsdangerous
7: Click
8: Flask
9: Flask-API

Để tải các thành phần trên ta vào địa chỉ: https://pypi.org/ để tìm và tải tại mục: Download files.

Cài đặt: pip27.exe install ThePackageFile-0.0.0.tgz