하나의 로그인 페이지가 있습니다. 사용자가 사용자 이름과 암호를 줄 때 암호를 암호화하여 서버로 보내려고합니다. 각도 js 응용 프로그램을 사용하고 있으므로 각도에서 코드를 작성하고 싶습니다.AngularJS에서 비밀번호 암호화
답변
HTTPS를 사용하여 서버로 보낸 다음 서버 측에서 암호화/암호 해독하십시오. 보안상의 이유로 프론트 엔드가 심각한 암호화 결함을 초래할 수있는 암호화를 원하지 않습니다.
다음 ngEncryption 팩토리를 사용하여 Controller.js 파일의 데이터를 암호화하고 apicontroller로 전달할 수 있습니다. Public-Private 키를 사용하여 암호화/암호 해독 용 데이터를 암호화합니다.이 키는 Global.asax.cs 파일의 Session_Start() 이벤트에서 생성 할 수 있습니다.
app.factory
('ngEncryption', function() {
return {
encrypt: function (dataForEncrypt) {
jsRequest = {};
var str = dataForEncrypt;
var xmlParams = $.cookie('ClientPublicKey');
// Create a new instance of RSACryptoServiceProvider.
var rsa = new System.Security.Cryptography.RSACryptoServiceProvider();
var reqArray = [];
var reqArraySize = 200;
if (str.length < reqArraySize) {
var data = System.Text.Encoding.UTF8.GetBytes(str);
// Import parameters from xml.
rsa.FromXmlString(xmlParams);
// Encrypt data (use OAEP padding).
var encryptedBytes = rsa.Encrypt(data, true);
// Convert encrypted data to Base64.
var encryptedString = System.Convert.ToBase64String(encryptedBytes)
// Replace plain password with encrypted data.
reqArray.push(encryptedString);
//break;
}
else {
var MaxCounterHeader = parseInt(Math.ceil(parseFloat(str.length/200)));
for (i = 0; i < MaxCounterHeader; i++) {
var newstring = str.substr(0, str.length > 200 ? 200 : str.length);
var data = System.Text.Encoding.UTF8.GetBytes(newstring);
rsa.FromXmlString(xmlParams);
var encryptedBytes = rsa.Encrypt(data, true);
// Convert encrypted data to Base64.
var encryptedString = System.Convert.ToBase64String(encryptedBytes)
reqArray.push(encryptedString);
str = str.replace(newstring, '');
}
}
return JSON.stringify(reqArray);
}
};
});
안전한 데이터를 보내고 서버에서 암호화하는 것이 https를 사용하는 것이 좋습니다. 클라이언트 코드에서 여전히 암호화하려면 SHA256 또는 SHA1 또는 MD5를 사용할 수 있습니다. 많은 것이 가능합니다. Angular-crypto는 많은 JS를 제공합니다. 컨트롤러의 html 페이지와 아래 라인에 JS에 대한 참조를 포함합니다.
CryptoJS.SHA1($scope.newCustomer.password)
보안을 위해 서버 쪽에서 해쉬 된 암호를 기록하십시오.
"SHA256 또는 SHA1 또는 MD5"는 암호화되지 않으며 단방향 암호화 해시 함수입니다. 또한 해시 함수에 소금을 추가하면 보안을 향상시키는 데별로 도움이되지 않습니다. 대신 HMAC를 무작위로 약 100ms의 지속 시간 동안 반복하고 소금을 해시로 저장하십시오. password_hash, PBKDF2, Bcrypt 및 유사한 기능과 같은 기능을 사용하십시오. 요점은 공격자가 무차별 적으로 암호를 찾는 데 많은 시간을 소비하게하는 것입니다. – zaph
- 1. 비밀번호 암호화
- 2. 비밀번호 암호화
- 3. 데이터베이스의 비밀번호 암호화
- 4. DES로 암호화 및 비밀번호
- 5. 아이폰 앱 비밀번호 암호화
- 6. Symfony sfDoctrineGuard 비밀번호 암호화
- 7. Jackrabbit의 비밀번호 암호화
- 8. Android SQlite 비밀번호 암호화?
- 9. 로그인하는 동안 비밀번호 암호화
- 10. Symfony 암호화 비밀번호
- 11. 이해하는 Liferay 비밀번호 암호화
- 12. java에서 php로 비밀번호 암호화 변환
- 13. Symfony 2 : 비밀번호 암호화 문제
- 14. 비밀번호 암호화 개인 키에 사용
- 15. 서버 비밀번호 암호화 속성 찾기
- 16. WinForms app.config, .NET에서 비밀번호 암호화
- 17. drupal에 비밀번호 암호화 알고리즘 추가
- 18. 자바 스크립트를 사용하여 비밀번호 암호화
- 19. 암호화 joomla admin 로그인 비밀번호
- 20. AES 암호화 - Android에 비밀번호 저장
- 21. angularjs에서 사용 후 민감한 데이터 (비밀번호) 삭제
- 22. JBOSS 및 Tomcat6의 데이터 소스 비밀번호 암호화
- 23. 암호화 된 비밀번호 변경 (Ruby On Rails)
- 24. Java -> LDAP 계정 비밀번호 암호화
- 25. iOS에서 비밀번호 암호화 및 암호 해독
- 26. Android 및 iOS 용 비밀번호 기반 암호화
- 27. Oracle Weblogic의 비밀번호 암호화 (SHA1) 10.3.2
- 28. Google 앱 엔진의 비밀번호 암호화 및 해독
- 29. 토론 : 비밀번호 키퍼 Android 애플리케이션 암호화
- 30. 로그인 팝업 - 사용자 이름 비밀번호 값 암호화
https를 찾으십니까? – Weedoze
@KISHAN PATI 비밀번호를 암호화하는 데 각도를 사용하지 말 것을 제안합니다. 백엔드 기술 Java 또는 사용중인 것을 사용하십시오. –
암호를 암호화하지 않고 HTTPS를 통해 보내고 백엔드가 그 작업을 수행하도록하십시오. – dfsq