Both can translate as "can," but they point to different reasons why something is possible.
会 (huì) is for skills you've learned. It's about knowledge or trained ability. Example: 我会说中文 (wǒ huì shuō zhōngwén) - "I can speak Chinese" - meaning I've learned it.
能 (néng) is for ability due to circumstances, physical capacity, or permission - things not necessarily learned. Example: 我今天很忙,不能去 (wǒ jīntiān hěn máng, bù néng qù) - "I'm busy today, I can't go" - not a skill issue, just circumstance.
A clear contrast: 我会游泳 (wǒ huì yóuyǒng) means "I know how to swim" (I learned the skill). 我能游泳 (wǒ néng yóuyǒng) means "I am able to swim [right now]" - maybe the pool is open, or my leg isn't injured.
For permission, use 能 or 可以 (kěyǐ), not 会: 我能进来吗? (wǒ néng jìnlái ma?) - "Can I come in?" You wouldn't say 我会进来吗 - that would sound like you're asking if you know how to enter, which is odd.
会 also has a separate meaning of "likely to" - 明天会下雨 (míngtiān huì xiàyǔ) - "It will probably rain tomorrow." 能 doesn't do this.